Fleetrun
Hecterra
NimBus
Otras aplicaciones
Wialon para Android/iOS
Logistics
Wialon Local
Wialon Hosting
WiaTag
Configurator
LeaseControl
es
Contenido
Problemas al cambiar los derechos de acceso a las unidades
  • technical_consulting
  • access_rights

Los usuarios pueden tener derechos de acceso a diferentes objetos: unidades, grupos de unidades, recursos y cuentas, rutas y otros usuarios. Dependiendo de los derechos que tenga, el usuario puede ver y realizar ciertas acciones con respecto a un objeto específico.

En la mayoría de los casos, solo los usuarios que configuran la unidad tienen acceso total a ella (todos los derechos), mientras que los demás usuarios tienen derechos limitados, suficientes para trabajar con la unidad. Para evitar cambios incorrectos en la configuración, es importante otorgar al usuario solo los derechos que realmente necesita.

Problema observado y método de su solución

En el trabajo diario, los derechos a la unidad están fijados en la forma necesaria y no cambian. Sin embargo, al cambiar los derechos pueden surgir dificultades, o a veces los derechos pueden cambiar sin su participación, y como resultado, la configuración existente puede diferir de la esperada. En este artículo se abordarán los problemas estándar de este tipo. Elija una de las opciones presentadas a continuación de acuerdo con la situación que observe.

1. Después de quitar los derechos, el usuario sigue teniendo derechos más amplios

La unidad puede pertenecer a un grupo al cual el usuario también tiene derechos. En este caso, el usuario tendrá la lista más amplia de derechos de las dos posibles.

Para corregir la situación, intente excluir la unidad del grupo o quitar los derechos del usuario al grupo al que pertenece la unidad. Después de hacer estos cambios, establezca los derechos necesarios para la unidad nuevamente.

La unidad puede pertenecer a varios grupos a la vez, y en este caso se recomienda verificar los derechos del usuario a todos estos grupos. La lista de grupos a los que pertenece la unidad se muestra en la pestaña Grupos en las propiedades de esta unidad.

2. Al quitar todos los derechos a la unidad, se muestra un error y los cambios no se aplican

Lo más probable es que este usuario sea el creador de la unidad. En este momento, no es posible quitar todos los derechos al creador sobre el objeto que creó. Al intentar hacerlo, se mostrará un error con el texto "No se pueden quitar derechos de acceso al creador de un objeto".

Para corregir la situación, es necesario cambiar el creador de esta unidad. Para ello, se puede transferir la unidad a otra cuenta. La unidad debe estar en la cuenta del usuario que utiliza directamente esta unidad.

Hemos creado un video sobre el uso de la herramienta Cambiar de cuenta desde la interfaz de administración (CMS) (en inglés con subtítulos en español):

3. Al ampliar los derechos, los cambios no se guardan

En Wialon se utiliza el siguiente principio de jerarquía: no es posible dar a ningún usuario más derechos sobre un objeto de los que tiene el creador de ese usuario sobre el mismo objeto. Si amplía la lista de derechos pero los cambios no se guardan, puede significar que el creador del usuario no tiene suficientes derechos a la unidad.

Para corregir la situación, otorgue una lista más amplia de derechos sobre la unidad a los usuarios más arriba en la jerarquía. Después, otorgue los al usuario mismo al que era necesario ampliar los derechos (es decir, recorra toda la rama de la jerarquía de cuentas de arriba a abajo).

Puede verificar la estructura del servicio utilizando la herramienta Jerarquía del servicio en la interfaz de administración (CMS).

4. Los derechos cambian aunque usted no realice cambios

Para cambiar los derechos de acceso a una unidad, el usuario debe tener el derecho Gestionar acceso al objeto con respecto a esta unidad. Varios usuarios pueden tener acceso a la unidad al mismo tiempo. Por lo tanto, varios usuarios pueden realizar cambios. Puede rastrear los cambios utilizando el Historial, que se puede ver en la pestaña Mensajes o en el informe utilizando la tabla del mismo nombre.

Para corregir la situación, analice el Historial y desactive la posibilidad de cambiar los derechos de acceso para aquellos usuarios que no deberían hacerlo.

5. Los derechos cambian aunque ningún usuario realice cambios

Con mayor frecuencia, tales cambios pueden ocurrir en un período determinado o bajo ciertas condiciones. En este caso, la causa es el funcionamiento de Tareas de tipo Modificar acceso a unidades o Notificaciones con tales acciones a realizar como Modificar acceso a unidades o Agregar o quitar unidades de grupos de unidades.

Para corregir, verifique la configuración correcta de las tareas y notificaciones (si es necesario, se pueden eliminar o detener).

6. Los derechos cambian aunque los usuarios, tareas y notificaciones no lo hagan

En Wialon se ha implementado la posibilidad de cambiar la configuración de los objetos (incluido el cambio de derechos) mediante solicitudes API. Estas solicitudes aún se ejecutan en nombre de un usuario específico, y el inicio y cierre de sesión mediante una solicitud API en alguna aplicación de terceros se registra. Esta información se puede rastrear en las propiedades del usuario en la pestaña Historiales o en la interfaz de administración (CMS) en la pestaña Usuarios en la columna Última visita.

Para corregir la situación, analice la lógica de funcionamiento de la aplicación de terceros. Si la aplicación utiliza un token de usuario creado específicamente para trabajar con la aplicación de terceros, se puede cambiar la lista de derechos de este usuario y desactivar el derecho Gestionar acceso al objeto, o se pueden cambiar los flags de su token. Si la aplicación utiliza el token del mismo usuario que para iniciar sesión en la interfaz de seguimiento, es necesario revisar la lógica de funcionamiento de la aplicación, eliminando el cambio de derechos de los usuarios con respecto a las unidades.

Los cambios en los derechos a una unidad se registran en el Historial (en la pestaña Mensajes o en el informe con la tabla del mismo nombre). En la columna Host se escribirá el nombre de usuario si los cambios se realizaron manualmente o a través de una solicitud API, o "tarea" o "notificación" si los cambios se realizaron utilizando esta funcionalidad.

Las entradas del Historial pueden ser eliminadas. En tal caso, la información sobre los cambios en los derechos no se mostrará. Si sospecha que se ha encontrado con esta situación, por favor, póngase en contacto con el soporte técnico de Wialon a través de support@wialon.com.

Ekaterina Grib,Customer Service Engineer

Transferencia de objetos dentro del mismo servicio
  • technical_consulting
  • hierarchy
  • service_structure
  • transferring_units

Para un funcionamiento eficaz de todo el servicio, es importante mantener una jerarquía correcta. La jerarquía en Wialon es el hilo conductor en el que se ensartan, como cuentas, las funciones, derechos y objetos de Wialon.

La importancia de la jerarquía se manifiesta en el momento de madurez del servicio, cuando su estructura ya está formada. En la etapa inicial de trabajo con Wialon puede que no surjan problemas, pero más tarde se descubre que la estructura creada no es óptima. Esto lleva a problemas con la gestión de los derechos de acceso, recursos compartidos, y a limitaciones en el funcionamiento de servicios como, por ejemplo, Google Maps y SMS. En tales casos, conviene corregir la estructura y transferir los objetos del sistema a un nuevo lugar en la jerarquía.

Este artículo propone herramientas para corregir la jerarquía mediante la transferencia de objetos del sistema, que ayudarán a hacer la gestión del servicio más conveniente y segura. Dependiendo del tipo de objetos a transferir, hay disponibles herramientas tanto para la transferencia automática como para la manual.

Transferencia automática

La transferencia automática implica una transferencia completa manteniendo todas las propiedades y relaciones de los objetos transferidos, sin embargo, solo está disponible para dos tipos de objetos: cuentas y unidades. A continuación, veremos instrucciones para transferir estos objetos dentro de un mismo servicio.

Cuentas

En la transferencia automática, las cuentas se transfieren completamente con todo su contenido y manteniendo todas las relaciones, contraseñas de usuarios, identificadores de sesión, etc. Esta transferencia se realiza utilizando herramientas internas de Wialon y no está disponible en la interfaz de usuario. Para la transferencia automática de cuentas, es necesario enviar una solicitud a support@wialon.com. La transferencia automática de cuentas solo está disponible para Wialon Hosting.

En caso de que sea necesario transferir solo una parte de los objetos de la cuenta, se debe utilizar la transferencia manual. Las instrucciones para tales casos se proporcionan más abajo.

Unidades y mensajes

Para transferir unidades, utilice la herramienta Cambio de cuenta en la interfaz del CMS Manager.

Puede encontrar instrucciones detalladas sobre cómo transferir unidades de una cuenta a otra y las posibles preguntas relacionadas en el siguiente video (en inglés con subtítulos en español).

Si al utilizar la herramienta para transferir unidades la cuenta de destino no aparece en la lista, verifique que se cumplan las siguientes condiciones:

  • el creador de la cuenta de destino tiene el derecho de acceso Ver objeto y sus propiedades básicas a las unidades que se van a transferir;
  • los servicios Unidades y Crear unidades están activados para la cuenta de destino;
  • la cuenta de destino no debe estar bloqueada;
  • así como otras condiciones indicadas en el manual de usuario.

Transferencia manual

La transferencia manual implica recrear los objetos necesarios en el nuevo lugar y su posterior configuración. Parte de la configuración se puede transferir utilizando la herramienta Importar/Exportar. Además, en este caso será necesario restablecer los derechos de acceso de usuario y las interrelaciones entre microobjetos (por ejemplo, geocercas en plantillas de informes y en notificaciones), así como las contraseñas de usuario.

A continuación veremos instrucciones para transferir objetos individuales del sistema dentro del mismo servicio.

Cuentas

Una cuenta es el objeto fundamental del servicio, que se puede describir como la unidad de recurso, usuario y plan de facturación. Por lo tanto, la transferencia de una cuenta es un proceso complejo que incluye:

  • transferencia del usuario creador;
  • creación de una nueva cuenta;
  • asignación del plan de facturación requerido;
  • transferencia del contenido del recurso;
  • transferencia de los demás objetos pertenecientes a la cuenta original: usuarios, unidades, grupos de unidades, repetidores.

Para transferir una cuenta, ingrese a la interfaz del CMS Manager y siga estas instrucciones:

  1. Exporte la configuración del usuario creador de la cuenta a un archivo WLP (Exportar a archivoCopia completa).

  2. Cambie el nombre de la cuenta y su usuario creador. Por ejemplo, puede agregar "_old" al final del nombre.

  3. Cree una copia del usuario creador de la cuenta. Para ello, mantenga presionada la tecla Ctrl y haga clic en el usuario deseado en la lista. Al copiar el usuario, se transferirán propiedades como derechos de acceso, dirección email, es decir, aquellas que no se transfieren durante la exportación. Durante el proceso de copia:

    • Introduzca y confirme la contraseña del usuario. Es importante tener en cuenta que las contraseñas de usuario no se transfieren. Si el propietario del servicio ha guardado las contraseñas actuales, se pueden establecer contraseñas similares para los usuarios después de la transferencia; de lo contrario, será necesario utilizar nuevas contraseñas.
    • En el campo Creador, seleccione el usuario creador de la cuenta que debe convertirse en la cuenta padre de la nueva cuenta.

  4. Importe la configuración del usuario desde el archivo WLP.

  5. Cree una nueva cuenta. Al crearla, seleccione la opción Usuario existente y elija el usuario creado en el paso 3.

  6. Si es necesario, transfiera los demás objetos de la cuenta siguiendo las instrucciones que se encuentran más abajo en el artículo.

  7. Después de asegurarse de que toda la configuración y el contenido de la cuenta se hayan transferido correctamente, elimine la cuenta antigua con la marca "_old" en el nombre.

En caso de dificultades, es necesario verificar los siguientes puntos:

  • En la cuenta desde la que se crearán otras cuentas, deben estar:

    • habilitados los servicios Crear usuarios, Crear recursos, Sistema de gestión (CMS Manager);
    • activados los derechos de distribuidor y asignados los planes de facturación.

  • En la cuenta desde la que se exporta la configuración del usuario, debe estar habilitado el servicio Importar/Exportar.

  • Para exportar toda la configuración de los usuarios, es necesario tener derechos de acceso total sobre ellos. Para no tener que verificar la existencia de derechos de acceso total, puede realizar la exportación bajo el usuario principal, ya que tiene acceso total a todos los objetos del servicio.

  • Se recomienda seleccionar la opción Copia completa al exportar la configuración del usuario, ya que esto copia algunas configuraciones ocultas (por ejemplo, parámetros de funcionamiento de las aplicaciones).

Contenido de los recursos

Un recurso es un lugar de almacenamiento para los siguientes objetos:

  • geocercas y grupos de geocercas;
  • tareas y notificaciones;
  • plantillas de informes;
  • conductores, remolques, pasajeros, así como grupos de conductores, remolques y pasajeros;
  • pedidos.

Todos los objetos del contenido del recurso están disponibles para transferencia, excepto los pedidos. Se puede transferir tanto todo el contenido como objetos individuales. Para transferir:

  1. Exporte el contenido del recurso a transferir a un archivo WLP, seleccionando los objetos necesarios para la transferencia.
  2. Importe el contenido del recurso al nuevo recurso.

Los pedidos están disponibles para exportación e importación directamente en la aplicación Logistics.

Las asignaciones de conductores, remolques y pasajeros no se transfieren.

Si en la configuración de las plantillas de informes, notificaciones y tareas exportadas se utilizan geocercas, unidades, usuarios, plantillas de informes, etc., será necesario restablecer esta configuración, ya que al crear los objetos se les asignará un nuevo ID interno y la configuración antigua no será válida.

Usuarios

  1. Exporte la configuración del usuario original a un archivo WLP (Exportar a archivoCopia completa).

  2. Renombre este usuario, por ejemplo, agregando "_old" al nombre.

  3. Cree una copia del usuario. Para hacerlo en CMS Manager, mantenga presionada la tecla Ctrl y haga clic en el usuario deseado en la lista. Al copiar el usuario, se transferirán propiedades como derechos de acceso y dirección email, que no se transfieren durante la exportación. Durante el proceso de copia:

    • Introduzca y confirme la contraseña del usuario. Es importante tener en cuenta que las contraseñas de usuario no se transfieren. Si el propietario del servicio ha guardado las contraseñas actuales, se pueden establecer contraseñas similares para los usuarios después de la transferencia; de lo contrario, será necesario utilizar nuevas contraseñas.
    • En el campo Creador, seleccione el usuario creador de la cuenta que debe convertirse en la cuenta padre del nuevo usuario.

  4. Importe la configuración del usuario desde el archivo WLP.

  5. Después de asegurarse de que la configuración y las propiedades del usuario se hayan transferido correctamente, elimine el usuario antiguo con la marca "_old" en el nombre.

Grupos de unidades

  1. Cree una copia del grupo de unidades. Para hacerlo en CMS Manager, mantenga presionada la tecla Ctrl y haga clic en el grupo de unidades deseado en la lista.
  2. Al copiar el grupo, en el campo Creador seleccione el usuario creador de la cuenta a la que se debe realizar la transferencia.

El usuario creador de la cuenta a la que se debe transferir el grupo de unidades debe tener derechos a todas las unidades de este grupo.

Repetidores

Actualmente no es posible exportar la configuración de los repetidores. Para transferir un repetidor, es necesario recrearlo en la cuenta deseada y copiar manualmente la configuración del repetidor original.

Los repetidores no se pueden crear en nombre de otro usuario. Por lo tanto, para crear un repetidor en una cuenta específica, es necesario iniciar sesión como el usuario creador de esa cuenta.

Rutas

Actualmente no es posible exportar la configuración de las rutas. Para transferir una ruta, es necesario recrearla en la cuenta deseada junto con el horario y transferir manualmente la configuración de la ruta original.

Dificultades con la transferencia de objetos

Si tiene preguntas sobre la transferencia de objetos, contacte al soporte técnico a través del correo support@wialon.com. En el correo, describa detalladamente el problema y proporcione:

  • el nombre del objeto a transferir;
  • el nombre de la cuenta desde la que se debe transferir el objeto (si no se trata de la transferencia de una cuenta);
  • el nombre de la cuenta a la que se debe transferir el objeto (si se trata de la transferencia de una cuenta, entonces el nombre de la cuenta matriz planificada).

Kristina Malakhovskaya,Customer Service Engineer

Transferencia de objetos entre servicios
  • technical_consulting
  • hierarchy
  • service_structure

A menudo surge la necesidad de realizar cambios en la jerarquía del servicio Wialon para una gestión más eficaz. Ya hemos analizado la transferencia de objetos dentro de un mismo servicio en este artículo, pero a veces es necesario realizar una transferencia de un servicio a otro.

Este artículo propone herramientas para transferir objetos entre servicios. Dependiendo del tipo de objetos a transferir, hay disponibles herramientas tanto para la transferencia automática como para la manual.

Durante la transferencia, los usuarios pueden experimentar problemas de acceso debido a cambios temporales en el nombre de usuario. Además, durante la transferencia no se recomienda realizar cambios en los objetos del servicio que se están transfiriendo (crear nuevas unidades en la cuenta, cambiar los grupos de unidades o la configuración de las notificaciones, etc.).

Después de la transferencia, se recomienda verificar los objetos transferidos.

Transferencia automática

Existe un servicio adicional para la transferencia automática de cuentas entre servicios de Wialon Hosting utilizando herramientas internas de Wialon. La transferencia automática implica una transferencia completa manteniendo todas las propiedades y relaciones entre los objetos transferidos. Tiene las siguientes limitaciones:

  • Solo se transfieren cuentas completas;
  • El número total de unidades activas transferidas debe ser de 50 o más;
  • Los servicios deben estar ubicados en el mismo Centro de datos;
  • No está disponible la transferencia de todo el contenido del servicio en su totalidad;
  • El número de unidades en el servicio final después de la transferencia no debe exceder el límite recomendado.

Para la transferencia automática de cuentas, es necesario enviar una solicitud a partners@wialon.com.

Transferencia manual

La transferencia manual implica recrear los objetos necesarios en el nuevo lugar y su posterior configuración. Parte de la configuración se puede transferir utilizando la herramienta de importación y exportación. Además, en este caso será necesario restablecer los derechos de acceso de usuario y las relaciones entre microobjetos (por ejemplo, geocercas en plantillas de informes y en notificaciones), así como las contraseñas de usuario.

A continuación, veremos instrucciones para transferir ciertos objetos del sistema entre servicios.

Cuentas

Una cuenta es el objeto fundamental del servicio, que se puede describir como la unidad de recurso, usuario y plan de facturación. Por lo tanto, la transferencia de una cuenta es un proceso complejo que incluye:

  • Crear una nueva cuenta;
  • Transferir el usuario creador de la cuenta;
  • Asignar el plan de facturación necesario;
  • Transferir el contenido del recurso;
  • Transferir los demás objetos pertenecientes a la cuenta original: usuarios, unidades, grupos de unidades, repetidores, rutas.

Para transferir cuentas, inicie sesión en la interfaz del CMS Manager y siga estas instrucciones:

  1. Exporte la configuración de los usuarios creadores de cuentas a archivos WLP (Exportar a archivoCopia completa). Al exportar la configuración de varios usuarios a la vez, se crea un archivo comprimido con archivos WLP.

  2. Cambie los nombres de las cuentas y sus usuarios creadores en el servicio original. Por ejemplo, puede agregar "_old" al final del nombre.

  3. Cree las cuentas necesarias en el nuevo servicio.

  4. Extraiga los archivos del archivo comprimido descargado anteriormente e importe la configuración de los usuarios correspondientes desde los archivos WLP. Es importante tener en cuenta que propiedades de usuario como la dirección de correo electrónico, los derechos de acceso y la contraseña no se transfieren durante la exportación y deberán configurarse manualmente. Si el propietario del servicio ha guardado las contraseñas actuales, se pueden establecer contraseñas similares para los usuarios después de la transferencia; de lo contrario, será necesario usar nuevas contraseñas.

  5. Si es necesario, transfiera los demás objetos de la cuenta siguiendo las instrucciones que se encuentran más abajo en el artículo.

En caso de dificultades, es necesario verificar los siguientes puntos:

  • En la cuenta desde la que se crearán otras cuentas, deben estar:

    • Habilitados los servicios Crear usuarios, Crear recursos, Sistema de gestión (CMS Manager);
    • Activados los derechos de distribuidor y asignados los planes de facturación.

  • En la cuenta desde la que se exporta la configuración del usuario, debe estar habilitado el servicio Importar/Exportar.

  • Para exportar toda la configuración de los usuarios, es necesario tener derechos de acceso total a ellos. Para no tener que verificar la existencia de derechos de acceso total, puede realizar la exportación como usuario principal, ya que tiene acceso total a todos los objetos del servicio.

  • Al exportar la configuración del usuario, se recomienda seleccionar la opción Copia completa, ya que esto copia algunas configuraciones ocultas (por ejemplo, parámetros de funcionamiento de aplicaciones).

Unidades y mensajes

Mediante exportación/importación de mensajes

  1. Exporte la configuración de las unidades a un archivo WLP. Si se exportan varios objetos a la vez, se descargará un archivo comprimido con archivos WLP.

  2. En el servicio original, cambie los ID y números de teléfono especificados en las propiedades de las unidades. Por ejemplo, puede agregar "_old" al ID y un dígito extra al número de teléfono.

  3. Extraiga los archivos del archivo comprimido descargado anteriormente y cree unidades a partir de los archivos WLP.

  4. Exporte los mensajes de las unidades en el servicio original. Utilice el formato WLN o WLB.

  5. Importe los mensajes a las unidades correspondientes en el nuevo servicio.

En caso de dificultades, es necesario verificar los siguientes puntos:

  • Para exportar toda la configuración de las unidades, es necesario tener derechos de acceso total a ellas. Para no tener que verificar la existencia de derechos de acceso total, puede realizar la exportación como usuario principal, ya que tiene acceso total a todos los objetos del servicio.

  • Existe una limitación en el tamaño del archivo/archivo comprimido importado: 64 MB. Si el archivo exportado es mayor de 64 MB, es necesario dividir el intervalo de tiempo para los mensajes en la etapa de exportación y así obtener varios archivos.

  • El usuario en el servicio original debe tener el derecho Exportar mensajes para las unidades cuyos mensajes deben transferirse. Y en el servicio final, el derecho Importar mensajes para las unidades a las que se deben transferir los mensajes.

  • En el servicio original y final, el servicio Mensajes debe estar habilitado en la cuenta.

  • Al transferir unidades, puede ser necesario cambiar la configuración del propio equipo. Los valores necesarios de IP:puerto se pueden ver en la configuración de las unidades en la pestaña Básicas.

  • Los mensajes recibidos en el período entre el cambio del ID original y la creación de la nueva unidad desde el archivo WLP pueden perderse si el dispositivo no tiene caja negra.

Mediante retransmisión de mensajes

  1. Exporte la configuración de las unidades a archivos WLP. Si se exportan varios objetos a la vez, se descargará un archivo comprimido con archivos WLP.

  2. Extraiga los archivos del archivo comprimido descargado anteriormente y cree unidades a partir de los archivos WLP.

  3. Al crear las unidades, se mostrará un error con el texto "Error al importar datos". Este error ocurre debido a un conflicto de ID y números de teléfono idénticos en los servicios original y final. Cuando se abra la ventana de propiedades de la unidad, es necesario especificar el tipo de dispositivo - Wialon Retranslator, ID - ID de la unidad en el servicio original.

  4. Cree un repetidor en el servicio original y agregue las unidades cuyos mensajes deben transferirse.

  5. Inicie el repetidor, ya que se crea detenido.

  6. Abra la configuración del repetidor, active la opción Retransmitir datos por el período anterior y especifique el período necesario.

  7. Cuando finalice la retransmisión de datos del período pasado, cambie el ID y el número de teléfono de las unidades en el servicio original. Por ejemplo, agregue "_old" al ID y un dígito extra al número de teléfono.

  8. Importe nuevamente los archivos WLP, seleccionando la opción Configuración de dispositivo durante la importación. Esta reimportación es necesaria para especificar el tipo de dispositivo correcto y el número de teléfono de las unidades en el nuevo servicio.

En caso de dificultades, es necesario verificar los siguientes puntos:

  • Si la retransmisión no está disponible, verifique si el servicio Repetidores está habilitado para la cuenta actual y las cuentas superiores.

  • Si la retransmisión no está disponible y no hay acceso a la cuenta superior, es necesario contactar al proveedor del servicio de seguimiento.

  • Para agregar unidades a los repetidores, el usuario debe tener el derecho Utilizar unidad en tareas, notificaciones, rutas, repetidores para esas unidades.

  • Al retransmitir de Wialon Hosting a Wialon Hosting, se utiliza una dirección del servidor especial, diferente para cada centro de datos:

    • hosting.wialon.com — hw.sig;
    • hosting.wialon.eu — hw.tig;
    • hosting.wialon.us — hw.usa;
    • hosting.wialon.ru, hosting.wialon.org — hw.tms.
      Si necesita aclarar en qué centro de datos se encuentra su servicio, contacte al soporte técnico en support@wialon.com.
  • Al transferir unidades, puede ser necesario cambiar la configuración del propio equipo. Los valores necesarios de IP:puerto se pueden ver en la configuración de las unidades en la pestaña Básicas.

  • Los mensajes recibidos en el período entre el cambio del ID original y la especificación del tipo de dispositivo correcto en el nuevo servicio pueden perderse si el dispositivo no tiene caja negra.

Contenido de los recursos

Un recurso es un lugar donde se almacenan los siguientes objetos:

  • Geocercas y grupos de geocercas;
  • Tareas y notificaciones;
  • Plantillas de informes;
  • Conductores, remolques, pasajeros, así como grupos de conductores, remolques y pasajeros;
  • Pedidos.

Se puede transferir todo el contenido completo o objetos individuales. Para realizar la transferencia, es necesario:

  1. Exportar el contenido de los recursos en el servicio original a archivos WLP, seleccionando los objetos necesarios para la transferencia.
  2. Importar el contenido de los recursos desde los archivos WLP al nuevo servicio.

Los pedidos están disponibles para exportación e importación directamente en la aplicación Logistics.

Las asignaciones de conductores, remolques y pasajeros no se transfieren.

Si en la configuración de las plantillas de informes, notificaciones y tareas exportadas se utilizan geocercas, unidades, usuarios, plantillas de informes, etc., será necesario restablecer esta configuración, ya que al crear los objetos se les asignará un nuevo ID interno y la configuración antigua no será válida.

Usuarios

  1. Exporte la configuración de los usuarios a archivos WLP (Exportar a archivoCopia completa). Al exportar la configuración de varios usuarios a la vez, se descarga un archivo comprimido con archivos WLP.
  2. Renombre los usuarios en el servicio original, por ejemplo, agregando "_old" al nombre.
  3. Cree usuarios en el nuevo servicio.
  4. Extraiga los archivos del archivo comprimido descargado anteriormente e importe la configuración de los usuarios correspondientes. Es importante tener en cuenta que propiedades de usuario como la dirección email, los derechos de acceso y la contraseña no se transfieren durante la exportación y deberán configurarse manualmente. Si el propietario del servicio ha guardado las contraseñas actuales, se pueden establecer contraseñas similares para los usuarios después de la transferencia; de lo contrario, será necesario usar nuevas contraseñas.

Grupos de unidades

Actualmente no es posible exportar la configuración de los grupos de unidades. Para transferir grupos de unidades, es necesario crearlos manualmente en la cuenta del nuevo servicio, agregar las unidades necesarias y otorgar a los usuarios los derechos de acceso correspondientes.

Repetidores

Actualmente no es posible exportar la configuración de los repetidores. Para transferir un repetidor, es necesario recrearlo en la cuenta deseada y copiar manualmente la configuración del repetidor original.

Los repetidores no se pueden crear en nombre de otro usuario. Por lo tanto, para crear un repetidor en una cuenta específica, es necesario iniciar sesión como el usuario creador de esa cuenta.

Rutas

Actualmente no es posible exportar la configuración de las rutas. Para transferir una ruta, es necesario recrearla en la cuenta deseada junto con el horario y transferir manualmente la configuración de la ruta original.

Verificación después de la transferencia

Después de la transferencia, se recomienda realizar los siguientes pasos:

  • Verificar los derechos de acceso de los usuarios a los objetos creados como resultado de la transferencia (unidades, recursos, etc.).
  • Asegurarse de que los mensajes de las unidades se hayan transferido correctamente.
  • Verificar si se han asignado planes de facturación a las cuentas creadas.
  • Comprobar las relaciones entre microobjetos (por ejemplo, geocercas en plantillas de informes y notificaciones).

Se recomienda eliminar objetos del servicio original solo después de verificar la correcta transferencia de todos los objetos, su configuración y relaciones.

Kristina Malakhovskaya,Customer Service Engineer

Cómo elegir el parámetro del sensor
  • technical_consulting
  • sensor_parameters
  • sensor_types

Si conoce el tipo de dispositivo, su configuración y cómo se instaló, puede saber qué parámetro elegir para el sensor en Wialon. Pero si ha comenzado a trabajar con Wialon recientemente y tiene dudas, este artículo puede ayudarle a seleccionar el parámetro basándose en cómo lo hacen habitualmente otros usuarios.

Recomendaciones generales

  1. La lista de parámetros y su descripción se pueden encontrar en la página del dispositivo específico en el sitio web wialon.com en la sección Hardware. Para ello, introduzca el modelo de dispositivo deseado en la barra de Buscar dispositivos. También puede seleccionar una de las categorías de tipos de equipamiento y encontrar el modelo deseado en la lista. Luego, en la página del dispositivo, vaya a la pestaña Parámetros (ejemplo de dicha página para WiaTag).

    Si en la página del dispositivo no hay descripción de los parámetros, contacte a los especialistas en equipamiento a través del correo hw@wialon.com.

  2. En la mayoría de los casos, se puede entender el contenido del parámetro por su nombre en inglés. Por ejemplo, el parámetro fuel_lvl probablemente mostrará el valor del nivel de combustible, el parámetro total_mileage mostrará los valores del sensor de kilometraje, etc. Los nombres de los parámetros obtenidos del CAN bus generalmente comienzan con el prefijo can.

  3. Los parámetros que transmite el dispositivo pueden estar descritos en la documentación del equipamiento. La documentación generalmente se presenta en el sitio web del fabricante.

  4. Existe una lista de parámetros virtuales que están definidos en el sistema por defecto y son adecuados para casi cualquier tipo de equipamiento: 
    • speed  — velocidad de movimiento;
    • altitude — altura sobre el nivel del mar;
    • sats — número de satélites;
    • course — dirección de movimiento;
    • lat — latitud geográfica;
    • lon — longitud geográfica;
    • time — tiempo UNIX del mensaje;
    • regtime — tiempo de registro del mensaje en el servidor.

El método de búsqueda y verificación del parámetro seleccionado depende del tipo de sensor en el que se utiliza. A continuación, veremos varios ejemplos para los tipos de sensores más comúnmente utilizados.

Sensor de ignición

El Sensor de ignición es un sensor digital que muestra si el motor está en marcha o no. Cuando el valor del sensor digital toma un valor cero, se considera apagado, y cuando el valor toma un valor distinto de cero, el sensor se considera encendido.

El sensor de ignición no muestra la posición ACC de la llave de encendido, en la que el motor no está en marcha, pero el equipo adicional ya está disponible para su uso.

Como parámetro para el Sensor de ignición puede ser adecuada una de las entradas digitales (al final de los mensajes, el parámetro con formato I/O). El I/O describe el estado de todas las entradas y salidas digitales simultáneamente, y se puede usar para determinar el estado de una entrada digital específica usando el parámetro inN (la lógica de selección del número de entrada N se describe en otro artículo).

También se puede intentar crear un sensor de ignición basado en el parámetro que muestra el voltaje externo (generalmente se llama pwr_ext). En este caso, es necesario crear una Tabla de cálculo en las propiedades del sensor. En el manual del usuario se proporciona un ejemplo de dicha tabla. Al usar este ejemplo, solo es necesario cambiar el valor umbral de voltaje al cual se considerará que la ignición está activada.

Método práctico de selección y verificación del parámetro

  1. Apague el motor y espere a recibir varios mensajes del rastreador.
  2. Encienda el motor y espere a recibir varios mensajes más.
  3. Compare los mensajes recibidos en los puntos 1 y 2. Si solo un parámetro cambió abruptamente, es muy probable que éste muestre el estado de la ignición. Si cambiaron varios parámetros, se puede seleccionar el necesario mediante una verificación adicional descrita en el siguiente punto.
  4. Examine los mensajes con velocidad distinta de cero. Se supone que la ignición está activada cuando hay velocidad, así como en varios mensajes antes y después de la presencia de velocidad. Se recomienda considerar intervalos de al menos cinco minutos de duración, ya que algunos rastreadores pueden cambiar el modo de envío de mensajes después del inicio y finalización del movimiento.
 Ejemplo

La unidad envió mensajes con los siguientes parámetros:


speedparam1param2param3
15526.00301000
25626.00401020
35726.00511015
4026.00611004
5026.0071476
6026.0080489
71026.00901001
81126.01011004

Supongamos que la ignición de la unidad estaba apagada en el 5º y 6º mensaje (resaltados en rojo). En los demás mensajes, la ignición está activada (resaltados en verde).

param1 — el valor aumentó constantemente en todos los intervalos, no hay cambios abruptos, no hay relación con la presencia o ausencia de velocidad. Por lo tanto, este parámetro no puede utilizarse para el sensor de ignición.

param2 — cambió en los tres intervalos, tomó un valor cero cuando había velocidad en los mensajes, aunque en ese momento la ignición debería estar activada. Por lo tanto, este parámetro no puede utilizarse para el sensor de ignición.

param3 — en los intervalos cuando se supone que la ignición está activada, el parámetro toma un valor superior a 1000, y en los intervalos cuando la ignición está apagada, el valor cae abruptamente a un nivel inferior a 500. Por lo tanto, se puede intentar utilizar este parámetro en el sensor de ignición aplicando una tabla de cálculo.

Sensores de kilometraje

Actualmente en Wialon existen dos sensores para el registro del kilometraje:

  1. El Sensor de kilometraje muestra todo el kilometraje de la unidad desde la instalación del sensor.
  2. El Odómetro relativo muestra el kilometraje entre el mensaje actual y el anterior.

Si el dispositivo envía parámetros para ambos tipos de sensores mencionados, las lecturas del odómetro no necesariamente deben coincidir completamente con la diferencia que resulta al restar las lecturas del sensor de kilometraje en dos mensajes adyacentes. Esto se debe a que el algoritmo de cálculo de los sensores puede diferir por parte del propio dispositivo. Para la demostración al usuario, se recomienda elegir el sensor que muestre resultados más confiables.

Ambos sensores para el registro del kilometraje utilizan kilómetros (o millas) como unidades de medida. Si el parámetro entrante tiene otras unidades de medida, es necesario aplicar un coeficiente para convertir los valores obtenidos a kilómetros (o millas). Por ejemplo, si el parámetro can_odo muestra el valor en metros, entonces en el campo Parámetro en las propiedades del sensor será necesario escribir la siguiente fórmula para la conversión a kilómetros: can_odo/const1000

Método práctico de selección y verificación del parámetro

Para verificar si el parámetro está correctamente seleccionado para el Sensor de kilometraje o el Odómetro relativo, se puede utilizar la herramienta Distancia. Los valores de los parámetros y la distancia medida entre dos mensajes generalmente no coinciden completamente, pero son conmensurables. Esto se debe a que la herramienta Distancia calcula matemáticamente la distancia entre dos puntos con las coordenadas seleccionadas, mientras que los sensores generalmente cuentan los kilómetros recorridos basándose en el número de rotaciones de la rueda y su diámetro.

El parámetro se puede utilizar en el Sensor de kilometraje si:

  1. su valor no cambia cuando la unidad está detenida;
  2. su valor aumenta cuando la unidad se mueve;
  3. la diferencia de sus valores en dos mensajes adyacentes es conmensurable con el valor obtenido al usar la herramienta Distancia.

El parámetro se puede utilizar en el Odómetro relativo si:

  1. es igual a cero cuando la unidad está detenida;
  2. tiene un valor positivo cuando la unidad se mueve;
  3. tiene valores aproximadamente iguales cuando la unidad se mueve a la misma velocidad;
  4. su valor es conmensurable con el valor obtenido al usar la herramienta Distancia.
 Ejemplo

La unidad envió mensajes con los siguientes parámetros:

Cree un Sensor de kilometraje basado en el parámetro mileage, ya que aumenta constantemente en movimiento y no cae a cero durante las paradas.

Cree un Odómetro relativo basado en el parámetro odo, ya que tiene diferentes valores en movimiento y cae a cero durante las paradas. Sin embargo, su valor parece demasiado grande, así que intente aplicar la fórmula odo/const1000.

Mida el kilometraje de la unidad entre varios pares de mensajes utilizando la herramienta Distancia, colocando los segmentos medidos sobre la ruta.

Compare los valores obtenidos:

Sensor de kilometrajeDiferencia con el valor anterior del sensor de kilometrajeOdómetro relativoHerramienta Distancia
16801.54 km1.00 km
26802.52 km6802.52 - 6801.54 = 0.98 km1.00 km1.000 km
36803.51 km6803.51 - 6802.52 = 0.99 km1.00 km1.020 km
46804.00 km6804.00 - 6803.51 = 0.49 km0.50 km0.500 km
56804.20 km6804.20 - 6804.00 = 0.20 km0.50 km0.160 km
66804.20 km6804.20 - 6804.20 = 0.00 km0.00 km-

Los valores son aproximadamente iguales, por lo que se puede suponer que los parámetros para ambos sensores se han elegido correctamente. Tenga en cuenta que diferentes sensores pueden tener diferentes precisiones. En tal caso, en el Contador de kilometraje y la Detección de viajes se recomienda utilizar el sensor que envía lecturas más cercanas a las esperadas.

Sensores de combustible

Actualmente en Wialon existen varios tipos de sensores de combustible:

  • El Sensor del consumo de combustible absoluto (SCCA) muestra el consumo de combustible durante todo el período de operación de la unidad. Por lo tanto, para obtener datos sobre el consumo durante un período específico, se utiliza el siguiente algoritmo: se calcula la diferencia entre las lecturas del sensor al final y al principio del intervalo considerado.

  • El Sensor del consumo de combustible instantáneo (SCCI) muestra la cantidad de combustible consumido desde la medición (mensaje) anterior. Por lo tanto, para obtener datos sobre el consumo durante un período específico, se utiliza el siguiente algoritmo: se calcula la suma de las lecturas del sensor en todos los mensajes en el intervalo considerado.

  • El Sensor impulsivo del consumo de combustible (SICC) tiene el principio de funcionamiento similar al SCCI.

  • El Sensor de nivel de combustible (SNC) está diseñado para calcular la cantidad de combustible en el tanque. Se puede utilizar para calcular el consumo, así como para controlar las descargas y llenados de combustible.

  • El Sensor impulsivo del nivel de combustible (SINC), al igual que el sensor anterior, está diseñado para calcular la cantidad de combustible en el tanque. Se puede utilizar para calcular el consumo, así como para controlar las descargas y llenados de combustible. La diferencia con el SNC es que en el cálculo se utilizan datos del mensaje anterior, y la diferencia de valores de impulsos de dos mensajes adyacentes se divide por la diferencia de tiempo entre ellos. Este tipo de sensor casi no se utiliza en la práctica; en su lugar, la mayoría de los usuarios prefieren un SNC normal.

Si el dispositivo envía simultáneamente parámetros para varios tipos de los sensores mencionados, sus lecturas y los resultados de los cálculos basados en ellos pueden diferir. Esto se debe a la diferencia en los métodos de medición, así como a las peculiaridades del trabajo con el combustible. Para la demostración al usuario, se recomienda elegir el sensor que muestre resultados más confiables.

La información sobre el combustible puede estar contenida en parámetros con los siguientes nombres: fuel_lvl, fuel_used, cons_total, can_fuel, rs485_lls, adc1, adc2, etc.

La elección del tipo de sensor debe basarse en cómo cambia el valor del parámetro. Consideremos diferentes comportamientos de los parámetros a continuación.

Sensor del consumo de combustible absoluto

El parámetro se puede utilizar en el Sensor del consumo de combustible absoluto si:

  • su valor no cambia cuando el motor no está funcionando;
  • su valor aumenta durante el funcionamiento del motor;
  • su valor crece más rápidamente durante el movimiento o el trabajo bajo carga que durante la parada o la ausencia de carga.

Sensor del consumo de combustible instantáneo y Sensor impulsivo del consumo de combustible

El parámetro se puede utilizar en el Sensor del consumo de combustible instantáneo o en el Sensor impulsivo del consumo de combustible si:

  • es igual a cero cuando el motor no está funcionando;
  • tiene un valor positivo cuando el motor está funcionando;
  • tiene valores aproximadamente iguales cuando la unidad se mueve a la misma velocidad o trabaja bajo la misma carga.

Sensor de nivel de combustible

El parámetro se puede utilizar en el Sensor de nivel de combustible si:

  • su valor no cambia cuando el motor no está funcionando;
  • su valor disminuye gradualmente cuando el motor está funcionando;
  • su valor cae más rápidamente durante el movimiento o el trabajo bajo carga que durante la parada o la ausencia de carga;
  • su valor fluctúa alrededor del valor real durante el funcionamiento del motor y el movimiento;
  • su valor aumenta bruscamente durante el llenado.

A diferencia de los sensores de consumo de combustible, el parámetro del SNC puede no comportarse como se describe arriba, porque durante la parada o el movimiento puede haber una descarga de combustible, la unidad puede moverse en un plano inclinado, la temperatura puede cambiar significativamente durante el día, el combustible puede contener impurezas, etc. Puede leer más sobre los problemas en el control de combustible y los métodos para resolverlos en la sección Artículos de expertos → Combustible.

A continuación se muestra un ejemplo de gráfica con los cambios del parámetro SNC que contiene intervalos de viaje y llenados de combustible.

En algunos casos, el parámetro de SNC se comporta de manera opuesta: cuando el motor está funcionando, su valor aumenta, y durante el llenado, disminuye. Esta diferencia se nivelará después de realizar la calibración del tanque e introducir sus resultados en la Tabla de cálculo.

Ekaterina Grib,Customer Service Engineer

Cómo elegir el número de entrada/salida digital (I/O)
  • technical_consulting
  • sensor_parameters

Una entrada digital y una salida digital son contactos (pines conectores) a los que se aplica voltaje de solo dos niveles: uno corresponde al estado activado (1 o Encendido), y el otro al estado desactivado (0 o Apagado). Por lo tanto, las entradas y salidas digitales se utilizan para conectar al rastreador dispositivos o circuitos que transmiten solo dos estados posibles. Por ejemplo, se puede conectar un sensor de estado de puerta a una entrada digital del rastreador para que este pueda determinar si está abierta o no. Y a una salida digital del rastreador se puede conectar un dispositivo antirrobo que será controlado por el rastreador y bloqueará el encendido.

Cabe señalar que si el cliente necesita un valor numérico exacto, se requiere un conector analógico. Porque si, por ejemplo, se usa una entrada digital para un sensor de nivel de combustible, solo podrá saber si hay combustible en el tanque o no.

El número de entradas y salidas digitales en un rastreador puede ser bastante grande (por ejemplo, el Galileosky 7x puede tener de 6 a 10 entradas digitales dependiendo de la modificación y configuración). Por lo tanto, los usuarios a menudo se preguntan: ¿a qué entrada o salida digital conectó el mecánico el dispositivo para el cliente? Con las instrucciones a continuación, podrá obtener la respuesta requerida.

Visualización de entradas/salidas digitales

Primero, cabe señalar que el estado de las entradas y salidas digitales en Wialon se presenta en forma de dos números hexadecimales (HEX), obtenidos de números binarios (BIN), en los que cada bit corresponde a una entrada/salida con el mismo número. El parámetro con estos valores tiene el nombre I/O (abreviatura de Inputs/Outputs) y contiene dos números separados por una barra diagonal: a la izquierda está el valor correspondiente al estado de todas las entradas, y a la derecha, al estado de las salidas.

¿Por qué se eligió esta implementación? Analicemos un ejemplo.

Supongamos que el equipo está conectado a las entradas digitales 1, 3, 4 y 7, así como a las salidas 1, 3, 6 y 8. Supongamos también que en el mensaje considerado todas las entradas y salidas mencionadas están activadas. Si se usara un parámetro separado en el mensaje para cada uno de ellos, vería lo siguiente:

in1=1, in2=0, in3=1, in4=1, in5=0, in6=0, in7=1, in8=0, out1=1, out2=0, out3=1, out4=0, out5=0, out6=1, out7=0, out8=1

Y en la implementación actual en Wialon, verá el siguiente registro:

I/O=4D/A5

Y la obvia brevedad del registro en este caso es la ventaja clave.

Determinación del número de entrada/salida digital activada

Si se conoce el número N de la entrada o salida, el parámetro correspondiente tendrá la forma inN, y el parámetro de salida, outN. Por ejemplo, el parámetro para la cuarta entrada es in4, y para la cuarta salida es out4.

Sin embargo, si no conoce el número de la entrada o salida a la que está conectado el equipo, puede usar uno de dos métodos: selección o enfoque matemático.

Selección

Al conectar el equipo, los mecánicos suelen usar las primeras entradas/salidas. Es decir, si se trata de un dispositivo o circuito que transmite información al rastreador, vale la pena verificar in1-in4, y si se trata de un dispositivo o circuito controlado por el rastreador, out1-out4.

Para buscar la entrada necesaria, puede crear 4 sensores con el tipo Sensor digital personalizado basados en estos parámetros (por ejemplo, en el primer sensor en la línea Parámetro será in1, en el segundo in2 y así sucesivamente). Luego vaya al panel Mensajes, seleccione el tipo de mensajes Mensajes de datos y en el menú de abajo indique Valores de sensores. Después de esto, ejecute mensajes para el intervalo cuando el equipo estuvo primero apagado y luego encendido, para encontrar el momento de transición del estado Apagado al estado Encendido en una de las columnas, cada una de las cuales corresponde al sensor creado.

Este es el método práctico más rápido para encontrar la entrada necesaria (de manera similar se puede trabajar con las salidas, pero en este caso se deben usar los parámetros out1, out2, etc.). Si no funciona, puede recurrir al enfoque matemático.

Enfoque matemático

Si no conoce el número de la entrada/salida a la que está conectado el equipo, puede usar las siguientes instrucciones:

  1. Vaya al panel Mensajes, seleccione el tipo de mensajes Mensajes de datos y en el menú de abajo indique Datos sin procesar.
  2. Ejecute mensajes para el intervalo cuando el equipo estuvo primero apagado y luego encendido.
  3. Después de mostrar la tabla con mensajes del rastreador, preste atención a la columna Parámetros y encuentre allí el parámetro I/O (está ubicado al final de la línea).

    Supongamos que en el mensaje donde el equipo estaba apagado, el parámetro I/O=102/0, es decir, las salidas digitales están desactivadas (o incluso no conectadas), y algunas entradas digitales están activadas.

  4. Abra la aplicación Calculadora (está instalada en cada computadora, o se pueden encontrar sus análogos en Internet) y cámbiela al modo Programador (o similar, que permite convertir valores de un sistema numérico a otro).
  5. Cambie la calculadora al sistema numérico hexadecimal (HEX).
  6. Ingrese el valor 102 encontrado anteriormente.
  7. La aplicación automáticamente (o al presionar la tecla Enter) le presentará este número en diferentes sistemas numéricos. Nos interesa el registro en forma binaria (BIN), que consiste solo en ceros y unos.



  8. Examine el número binario obtenido. Tenga en cuenta que el conteo del número de bit va de derecha a izquierda (como en el sistema decimal, donde las unidades están a la derecha, a su izquierda están las decenas, luego las centenas, miles, etc.): 0001 0000 0010
  9. Determine los números de bits para este número (la numeración de bits en Wialon comienza desde 1):

    Número121110987654321
    Valor000100000010
  10. De este registro se puede concluir que en este mensaje están activadas las entradas 2 y 9 (es decir, in2=1, in9=1), y todas las demás entradas están desactivadas (es decir, su valor es cero).
  11. Ahora encuentre el mensaje en el que el equipo estaba encendido. Supongamos que contiene el parámetro I/O=10A/0.
  12. Repita los pasos 4-8 para el valor 10A.



  13. Determine los números de bits para este número:

    Número121110987654321
    Valor000100001010
  14. En este mensaje están activadas las entradas 2, 4 y 9 (es decir, in2=1, in4=1 e in9=1).
  15. Compare los resultados de los pasos 10 y 14. Como se puede notar fácilmente, solo difieren en el estado del parámetro in4, es decir, en el ejemplo dado, el equipo estaba conectado a la entrada 4.

Uso de entradas/salidas digitales

El parámetro de entrada o salida digital se puede usar de la misma manera que cualquier otro parámetro.

Al crear sensores para entradas/salidas digitales, los tipos más adecuados son los del grupo Digitales, ya que implican solo dos estados (Encendido y Apagado).

Un método único de uso, que solo está disponible para entradas digitales, es la notificación con el tipo Entrada digital, para la cual ni siquiera es necesario crear un sensor.

Oleg Zharkovsky,Customer Service Engineer

Sensores: explicación de la tabla de cálculo
  • technical_consulting
  • calculation_table

Una de las primeras y principales etapas del trabajo con Wialon es la configuración de sensores en la unidad. Si los sensores se configuran correctamente, algunos algoritmos estándar darán resultados más precisos y podrá utilizar funcionalidades previamente no disponibles. En este artículo, se examinará en detalle la tabla de cálculo, una herramienta de la pestaña del mismo nombre, ya que es la que más frecuentemente causa dificultades al configurar sensores.

El artículo contiene información de diferentes niveles de complejidad. La parte principal será útil para entender la lógica de funcionamiento de la tabla de cálculo. Sin embargo, los interesados también podrán encontrar aquí formulaciones matemáticas más detalladas, que se destacarán en bloques especiales llamados Minuto matemático. Para una comprensión general del artículo, no es necesario leer estos bloques.

Principio general de funcionamiento de los sensores

Wialon soporta muchos tipos de rastreadores (la cantidad actual se puede encontrar en el sitio web wialon.com en la sección Hardware), y cada uno de ellos "habla" en su propio "idioma". Por lo tanto, los parámetros que provienen de diferentes rastreadores y se muestran en la pestaña Mensajes pueden contener la misma información (por ejemplo, sobre temperatura o kilometraje), pero tener diferentes nombres. Para que el usuario no note diferencias al usar unidades con diferentes tipos de rastreadores, es necesario crear sensores para cada unidad en Wialon. Los sensores tienen un tipo determinado, lo que permite al sistema entender qué algoritmo se debe usar para procesar los parámetros entrantes.

Sin embargo, a menudo simplemente elegir el tipo de sensor e indicar un parámetro en él no es suficiente, porque el valor del parámetro llega de una forma no obvia para el usuario. Por ejemplo, temp=125 puede significar 125°F, 125°C, 12.5°C o incluso −3°C. Existen 3 métodos para convertir el parámetro entrante a la forma deseada:

  1. Expresión en la línea Parámetro;
  2. Tabla de cálculo;
  3. Validación.

Se pueden usar por separado o combinar. Si se usan varios métodos simultáneamente, se aplicarán en el orden en que se enumeran arriba.

Esquemáticamente, el uso de sensores se puede representar de la siguiente manera:

  1. El sensor conectado al rastreador mide algún valor físico, que designaremos como S.
  2. El sensor convierte este valor y la transmite al rastreador. Del rastreador a Wialon llega el parámetro X.
  3. Basándose en el parámetro, se crea un sensor en Wialon. Para obtener un valor Y comprensible para el usuario, se aplican transformaciones f(X) al parámetro en el sensor.
  4. Idealmente, después de las transformaciones en el sensor, el valor Y=f(X) debería ser igual al valor que se midió en la primera etapa. Luego, Y se utilizará en tooltips, informes, notificaciones y otras funcionalidades de Wialon.

Dado que este artículo solo trata sobre la configuración de la tabla de cálculo en Wialon, del esquema anterior solo prestaremos atención a los siguientes elementos:

Cuándo se usa la tabla de cálculo

Por lo general, la tabla de cálculo se usa en casos donde es necesario transformar el parámetro de entrada. Sin embargo, los 3 métodos mencionados anteriormente sirven para esto. ¿En qué caso se debe recurrir específicamente a la tabla de cálculo?

Desde el punto de vista de la aplicación práctica, se puede decir que la tabla de cálculo se utiliza:

  • para la tabla de calibración (por ejemplo, para sensores de peso o nivel de combustible);
  • para sensores digitales basados en datos de entrada analógicos (por ejemplo, para sensores de ignición basados en voltaje);
  • para sensores basados en códigos que describen diferentes estados pero llegan en un solo parámetro (por ejemplo, device_status=4 muestra el estado de la ignición del motor, y device_status=13 significa que el botón de pánico está presionado, etc.);
  • para sensores que deben mostrar valores positivos y negativos, aunque el parámetro asociado solo tiene valores positivos (por ejemplo, para sensores de temperatura);
  • para cualquier sensor en el que sea necesario separar el rango de valores correctos y erróneos (por ejemplo, si el sensor envía valores especiales en el parámetro que indican errores).
 Minuto matemático

En otras palabras, vale la pena usar la tabla de cálculo si:

  • la fórmula Y=f(X) es desconocida, pero en la práctica se han establecido correspondencias entre algunos X e Y;
  • la fórmula Y=f(X) es demasiado compleja (por ejemplo, contiene funciones sin, cos, log, etc., que no son soportadas en Wialon);
  • la fórmula Y=f(X) tiene una forma diferente en diferentes intervalos y no puede ser descrita por una sola función;
  • es necesario separar el rango de valores correctos y erróneos.

Configuración de la tabla de cálculo

La tabla de cálculo implica trabajar con las funciones lineales más simples. Es decir, la tabla de cálculo transforma los datos de acuerdo con la siguiente fórmula: Y=a⋅X+b que es una de las variantes de la ecuación de una línea recta.

Si entendemos cómo funciona cada componente de esta herramienta, se pueden crear soluciones bastante útiles e inusuales con su ayuda. Por lo tanto, a continuación examinaremos cada área de la pestaña Tabla de cálculo por separado, visualizando su impacto en el resultado mediante un gráfico.

Para ver la gráfica que corresponde a la tabla de cálculo completada, es necesario hacer clic en el icono  en la parte superior de la pestaña.

Pares XY

En la parte derecha se encuentra el bloque Pares XY. Su llenado no es suficiente para el funcionamiento de la tabla de cálculo, pero puede simplificar su configuración.

Recomendamos usar pares XY solo para sensores de nivel de combustible, para introducir la tabla de calibración. En otros casos, es mejor calcular e introducir los valores X, a y b independientemente.

Se pueden agregar pares tanto manualmente como mediante la importación de archivos CSV o TXT (la exportación solo está disponible en CSV). Después de llenar todas las filas de este bloque, es necesario hacer clic en el botón Generar (se entiende "Generar tabla de cálculo basada en pares XY"), lo que llevará al cálculo de los valores X, a y b en la parte izquierda de la ventana.

Cada uno de los pares XY agregados corresponde a un punto en el gráfico. Como puede saber, se puede trazar una línea recta a través de 2 puntos. Por lo tanto, si se introducen 5 pares XY, se obtendrán 4 líneas rectas en el gráfico.

No se permite introducir pares con el mismo valor de X. Esto es técnicamente imposible, ya que un valor de X no puede corresponder a dos o más valores de Y. Sin embargo, se pueden introducir valores iguales de Y.

X es valor de entrada

El bloque central de la pestaña Tabla de cálculo contiene filas con valores X, a y b. Cada fila corresponde a una línea recta en el gráfico. El valor X en cada fila significa el comienzo de una nueva línea recta, es decir, establece el intervalo donde se usarán los nuevos valores a y b.

La última fila afecta todos los valores posteriores hasta +∞, y la primera fila afecta los valores incluso antes del primer X especificado, es decir, comenzando desde −∞. Por lo tanto, no tiene sentido escribir varias filas consecutivas con los mismos valores a y b.

Como ejemplo, consideremos una tabla con los siguientes valores:

De otra manera, esta condición se puede escribir así:

  • De −∞ a 3 (sin incluir) se aplica la ecuación Y=1⋅X-2.
  • De 3 (incluyendo) a 5.5 (sin incluir) se aplica la ecuación Y=0⋅X+3.
  • De 5.5 (incluyendo) a +∞ se aplica la ecuación Y=-0.5⋅X+2.

Ejemplo de gráfica obtenida al llenar la tabla de cálculo

a es coeficiente de inclinación de la línea recta

Cuando a=0, la inclinación será 0°, es decir, la línea será paralela al eje X.
Cuando a=1, la inclinación será 45°, es decir, cuanto mayor sea el coeficiente, más cerca estará la línea del eje Y.
Cuando a=-1, la inclinación será −45°, es decir, los valores negativos de este coeficiente inclinan la línea hacia abajo, y los positivos hacia arriba.

Ejemplo de gráfico de la línea recta Y=a⋅X con diferentes coeficientes de inclinación

Determinar el coeficiente de inclinación de una línea recta puede ser bastante simple: su valor es igual a la relación del cambio en Y al cambio en X.

Como ejemplo, podemos considerar la línea verde en el gráfico de arriba. Se puede ver que Y aumenta de 0 a 1 cuando X crece de 0 a 3, lo que significa que para esta línea el coeficiente a=(1-0)/(3-0)=1/3=0.33.


b es desplazamiento de la línea recta a lo largo del eje Y

Cuando b=0, no hay desplazamiento.
Cuando b>0, la línea se desplaza hacia arriba con respecto al eje X.
Cuando b<0, el desplazamiento es hacia abajo.

Ejemplo de líneas con diferentes desplazamientos

Cuando se usan pares XY, el valor de b se calcula automáticamente de manera que el siguiente segmento de línea continúe suavemente el anterior.

Calcular el valor de b no es tan simple como el coeficiente de inclinación, ya que en la mayoría de los casos no tiene una analogía comprensible fuera de las matemáticas, excepto por el desplazamiento de la línea hacia arriba o hacia abajo.

La única excepción es el caso cuando se configura un sensor digital usando la tabla de cálculo. En este caso, a=0, y la fórmula toma la forma Y=b. Por lo tanto, el valor de b será igual a lo que espera ver como Y.

Límites inferior y superior

Los límites permiten descartar valores erróneos del sensor según un principio simple: si el valor está fuera del rango entre el límite inferior y superior, el sensor mostrará un guion (error).

Consideremos un ejemplo con un sensor de nivel de combustible. Supongamos que los valores del parámetro de 3 a 250 corresponden a un volumen de combustible de 0 litros a 100 litros. Y los valores del parámetro 0 o 255 indican errores que queremos excluir para que no se interpreten como un volumen real (ya que en el tanque considerado no puede haber menos de 0 o más de 100 litros de combustible). Para este ejemplo, se puede proponer una solución con la opción Aplicar después del cálculo desactivada:

También existe una solución con la opción Aplicar después del cálculo activada:

Como el límite inferior está incluido en el rango permitido, podemos especificar los valores de la condición (3 o 0). Pero el límite superior no está incluido en el rango permitido, por lo que en este campo se debe especificar un valor ligeramente mayor que en la condición (250.1 o 100.1).

Del ejemplo se puede entender que la opción Aplicar después del cálculo afecta a qué valores se aplican los límites: si está desactivada, se filtran los valores en el eje X (valores de entrada antes de aplicar la tabla de cálculo), y si está activada, se filtran los valores en el eje Y (valores del sensor después de aplicar la tabla de cálculo).

Para visualizar el funcionamiento de los límites, consideremos otro ejemplo en el que se aplican los mismos límites a la misma línea recta, y la diferencia radica solo en la opción Aplicar después del cálculo, que afecta significativamente el resultado.

Límite inferior igual a 2, límite superior igual a 3, opción Aplicar después del cálculo desactivada

Límite inferior igual a 2, límite superior igual a 3, opción Aplicar después del cálculo activada

Principio de funcionamiento de la tabla de cálculo

A veces, para entender la esencia de un fenómeno, es necesario ir al revés. Si conocemos la fórmula exacta Y=f(X) que relaciona los valores de entrada y salida en todo el rango, no es necesario recurrir a la tabla de cálculo; es suficiente simplemente usar la expresión en la línea Parámetro. Consideremos tal caso.

Por ejemplo, supongamos que el valor de entrada está relacionado con el de salida por la siguiente fórmula: Y=0.5⋅X². Como parámetro, tomemos adc3. Para describir tal fórmula en Wialon, es necesario insertar la siguiente expresión en la línea Parámetro: const0.5*adc3^const2

Gráfico de la función Y=0.5⋅X²

Pero ¿qué hacer si no conocemos la fórmula exacta Y=f(X)? Es precisamente en este caso que nos ayudará la tabla de cálculo.

Supongamos que en ciertas condiciones conocemos los valores de la magnitud medida (esto será Y) y podemos verificar qué valor tomará el parámetro en Wialon en estos puntos (esto será X). De esta manera, podemos obtener valores, por ejemplo, en 4 puntos: (0; 0), (1; 0.5), (2; 2), (3; 4.5). Luego, trazamos estos puntos (X, Y) en el gráfico y los conectamos con segmentos de color rojo.

Reproducción de parte de la función Y=0.5⋅X² con segmentos construidos a partir de 4 puntos

No es difícil notar que el resultado es cercano al que se obtiene por la fórmula, pero aún hay diferencias. En algunos casos, tal precisión será suficiente, y si no lo es, se pueden medir valores en más puntos. En el gráfico de abajo se muestra un ejemplo para 6 puntos: (0; 0), (0.5; 0.125), (1; 0.5), (1.5; 1.125), (2; 2), (3; 4.5).

Reproducción de parte de la función Y=0.5⋅X² con segmentos construidos a partir de 6 puntos

Del ejemplo considerado se puede sacar la siguiente conclusión: la relación entre X e Y se puede describir no solo mediante una fórmula, sino también mediante varias líneas rectas, aunque a veces de manera simplificada. En esto radica la esencia del uso de la tabla de cálculo.

 Minuto matemático

La tabla de cálculo utiliza aproximación puntual e interpolación lineal.

La aproximación puntual es encontrar una función que esté cerca de la original basándose en un conjunto de valores conocidos de antemano. En Wialon, se utiliza para reproducir aproximadamente la función basándose en pares XY.

La interpolación lineal es el cálculo de valores en los segmentos entre puntos inicialmente conocidos mediante líneas rectas que pasan por estos puntos. En Wialon, se utiliza para calcular valores en puntos que se encuentran entre pares XY previamente introducidos, según la función aproximadamente reproducida.

Justificación y ejemplos de uso

En esta sección, consideraremos varios casos en los que la tabla de cálculo será útil.

La forma de la curva que describe la relación entre X e Y puede ser bastante compleja.

Por ejemplo, al usar un sensor de nivel de combustible, es necesario calibrar el tanque, y la forma del gráfico construido según la tabla de calibración dependerá de la geometría del tanque, que nunca es ideal (puede tener curvas, abolladuras, costillas internas, etc.).

Gráfico construido según la tabla de calibración con pequeños pasos entre mediciones

Describir tal dependencia con una sola fórmula es bastante problemático. Una forma más simple de describir la curva para el sistema es dividirla en intervalos donde se comporta aproximadamente como una línea recta y determinar las fórmulas de estas líneas. Se puede obtener un resultado similar usando pares XY.

Reproducción de la forma de una curva compleja mediante segmentos que pasan por 11 puntos

Además, a veces la dependencia entre X e Y puede ser diferente en varios intervalos. Para describirla, es necesario utilizar un sistema de varias expresiones, lo cual no se puede hacer en la línea Parámetro en las propiedades del sensor.

Por ejemplo, algunos sensores de temperatura funcionan de la siguiente manera: los valores de X en el rango de 0 a 127 corresponden a temperatura positiva, y en el rango de 128 a 255 a temperatura negativa. Para procesar tal caso, se necesitarán dos líneas en la tabla de cálculo:

X=0; a=1; b=0
X=128; a=1; b=-256

Gráfico de temperatura, donde valores más altos del parámetro corresponden a temperatura negativa

Los sensores digitales son otro ejemplo claro de una situación donde la dependencia entre X e Y es diferente en varios intervalos. Por ejemplo, se puede crear un sensor de ignición basado en el parámetro de voltaje, y para esto es necesario considerar dos condiciones: Y=0 cuando X<14, Y=1 cuando X≥14. Pero, como ya sabemos, no se puede hacer esto usando una expresión en las propiedades del sensor. Y en la pestaña Tabla de cálculo, para esto se necesitarán solo dos líneas:

X=0; a=0; b=0
X=14; a=0; b=1

En los sensores digitales, el coeficiente de inclinación siempre es 0.

Gráfico del estado de ignición en función del voltaje

 Minuto matemático

En el artículo ya se ha mencionado varias veces que idealmente se necesita una fórmula de relación entre X e Y para el sensor, y usamos la tabla de cálculo debido a la falta de otras opciones. En realidad, se puede intentar calcular tal fórmula, pero para esto es necesario tener una idea de los métodos numéricos de análisis y el software correspondiente. Al mismo tiempo, el resultado probablemente será difícil de entender y será difícil de corregir en el futuro. Para demostrarlo, calculamos un polinomio de interpolación para los siguientes 7 puntos: (0; 5), (400; 8), (1000; 22), (1850; 78), (2800; 160), (3600; 195), (4096; 200).

El resultado de la interpolación polinomial en este caso tiene la siguiente forma:

Y=1.78962834270398⋅10-19⋅X6-7.99064624017665⋅10-16⋅X5-4.83816855045549⋅10-12⋅X4+
+2.62803612257704⋅10
-8⋅X3-1.24091655860425⋅10-5⋅X2+8.58707470047479⋅10-3⋅X+5

Esta fórmula se puede introducir en la línea Parámetro en las propiedades del sensor (teniendo en cuenta la sintaxis de Wialon), y realmente funcionará. El gráfico de tal función en el rango de 0 a 4096 tiene el siguiente aspecto:

Sin embargo, si la dependencia descrita tiene una forma más compleja que la mostrada en el gráfico anterior, será necesario tomar más puntos o incluso usar otro método de interpolación, lo que puede llevar a que el resultado sea aún más difícil de percibir. Por lo tanto, la interpolación lineal, que se utiliza en la tabla de cálculo en Wialon, parece muy ventajosa en este contexto, ya que es bastante precisa y simple.

Oleg Zharkovsky,Customer Service Engineer

Sensores: lógica y alternativas de validación
  • technical_consulting
  • sensors
  • validation

Una de las primeras y principales etapas del trabajo con Wialon es la configuración de sensores en la unidad. En este artículo se examinará en detalle la validación de sensores, ya que tiene opciones de uso no obvias y permite realizar acciones únicas con los sensores.

Principio general de funcionamiento de los sensores

Wialon soporta muchos tipos de rastreadores (la cantidad actual se puede encontrar en el sitio web wialon.com en la sección Hardware), y cada uno de ellos "habla" en su propio "idioma". Por lo tanto, los parámetros que provienen de diferentes rastreadores y se muestran en la pestaña Mensajes pueden contener la misma información (por ejemplo, sobre temperatura o kilometraje), pero tener diferentes nombres. Para que el usuario no note diferencias al usar unidades con diferentes tipos de rastreadores, es necesario crear sensores para cada unidad en Wialon. Los sensores tienen un tipo determinado, lo que permite al sistema entender qué algoritmo se debe usar para procesar los parámetros entrantes.

Sin embargo, a menudo simplemente elegir el tipo de sensor e indicar un parámetro en él no es suficiente. Existen 3 métodos para convertir el valor del parámetro a la forma deseada:

  1. Expresión en la línea Parámetro;
  2. Tabla de cálculo;
  3. Validación.

Se pueden usar por separado o combinar. Si se usan varios métodos simultáneamente, se aplicarán en el orden en que se enumeran arriba.

En algunos casos, se puede lograr el mismo resultado con diferentes métodos. Por ejemplo, sumar los valores de dos sensores se puede hacer tanto con una expresión en la línea Parámetro como con validación. Más adelante se examinarán casos similares en detalle.

Cuándo se usa la validación

La validación se usa en casos donde es necesario vincular el valor de un sensor con otro. Desde el punto de vista de la aplicación práctica, se pueden destacar los siguientes casos para el uso de validación:

  • Un sensor afecta a otro a nivel físico (por ejemplo, el sensor del nivel de combustible muestra un valor incorrecto cuando hay un salto en las lecturas del sensor de voltaje);

  • Es necesario vincular varios sensores en un esquema lógico (por ejemplo, es necesario crear un sensor de apertura de las puertas delanteras del automóvil, que se activará cuando se active el sensor de apertura de la puerta izquierda o el sensor de apertura de la puerta derecha);

  • Es necesario mostrar un informe para un intervalo de tiempo en cuyo inicio se usaba un sensor antiguo con un parámetro, y al final, un nuevo sensor con otro parámetro (por ejemplo, anteriormente en el camión se usaba un sensor del nivel de combustible (SNC) menos preciso con una tabla de calibración, y luego se reemplazó por un SNC más preciso con otra tabla de calibración);

  • Hay varios sensores que miden el mismo indicador y es necesario mostrar el valor de uno u otro sensor (por ejemplo, el vehículo tenía un SNC incorporado menos preciso, se instaló un SNC más preciso adicional, y generalmente se usan las lecturas del segundo, pero si ocurre un error en ellas, es mejor mostrar el valor del primer sensor, aunque sea meno preciso);

  • El parámetro contiene información sobre diferentes sistemas de la unidad, y es necesario extraer solo una parte específica (por ejemplo, los primeros 5 bits del parámetro informan sobre el voltaje, y los siguientes tienen otro propósito, y del parámetro es necesario extraer solo los bits relacionados con el voltaje);

  • Es necesario realizar algunos cálculos aritméticos que incluyen valores de varios sensores (por ejemplo, se requiere ver en tiempo real el consumo de combustible en km/l, que se calcula dividiendo la lectura del odómetro relativo por las lecturas del sensor del consumo de combustible instantáneo).

Tipos de validación

En Wialon existen 12 tipos de validación. No verá tal división en la interfaz del sistema de rastreo satelital, pero para simplificar, todos los tipos se pueden dividir condicionalmente en 3 grupos.

GrupoTipos de validaciónComentarioAlternativas
Aritmético
  • Sumar
  • Restar validador del sensor
  • Restar sensor del validador
  • Multiplicar
  • Dividir el sensor por el validador
  • Dividir el validador por el sensor

Se puede prescindir fácilmente de estos tipos.

Existen y son simples.

Algorítmico
  • Comprobar no nulos
  • Reemplazar sensor por validador en caso de error

Ambos tipos se usan con frecuencia.

Para el segundo tipo hay una alternativa simple.

Lógico
  • Y lógico
  • O lógico
  • Operación Y
  • Operación O

Los tipos menos comprensibles, de los cuales principalmente se usan solo los dos primeros.

Existen, pero no son simples.

Examinemos cada grupo con más detalle.

Validación aritmética

Este grupo incluye operaciones aritméticas simples: suma, resta, multiplicación y división.

Se puede prescindir fácilmente de estos tipos de validación, ya que se puede lograr un resultado similar usando una expresión en la línea Parámetro. Para referirse al valor de otro sensor en la expresión, es necesario indicar el nombre de ese sensor entre corchetes (por ejemplo, [Fuel Level]).

En el siguiente ejemplo se examina una pequeña diferencia entre estos enfoques.

 Ejemplo

Supongamos que de la unidad llegan mensajes que contienen los siguientes parámetros:

  • odometer — muestra la distancia en kilómetros recorrida entre los dos últimos mensajes;
  • fuel_consumption — muestra el combustible en litros consumido entre los dos últimos mensajes.

El cliente necesita un sensor que muestre en tiempo real el consumo en km/l.

Variante de solución mediante validación:

  1. Crear un Sensor del consumo de combustible instantáneo con el nombre SCCI, basado en el parámetro fuel_consumption.

  2. Crear un Sensor personalizado con el nombre Consumo y unidades de medida km/l. Como parámetro, indicar odometer. En las propiedades del sensor Consumo, indicar el sensor SCCI como validador y seleccionar el tipo de validación Dividir el sensor por el validador.

Variante de solución mediante expresión:

  1. Crear un sensor de tipo Odómetro relativo con el nombre Kilometraje relativo, basado en el parámetro odometer.

  2. Crear un Sensor del consumo de combustible instantáneo con el nombre SCCI, basado en el parámetro fuel_consumption.
  3. Crear un Sensor personalizado con el nombre Consumo y unidades de medida km/l. Usar una fórmula con los nombres de los sensores creados anteriormente entre corchetes: [Kilometraje relativo]/[SCCI].

Como se puede notar fácilmente, al usar validación es suficiente crear no 3, sino solo 2 sensores, pero en este caso ningún sensor mostrará el valor del kilometraje entre mensajes. Sin embargo, si para resolver otras tareas necesita crear un sensor de tipo Odómetro relativo, entonces en ese caso la solución usando una expresión será más conveniente.

Validación algorítmica

Este grupo incluye solo 2 tipos de validación, cada uno de los cuales merece consideración.

Comprobar no nulos

Este tipo de validación es uno de los más utilizados. Permite ignorar las lecturas erróneas del sensor validado, cuya presencia se determina por el valor cero del sensor validador.

La situación más común de aplicación es la siguiente: un sensor conectado al rastreador puede mostrar datos incorrectos cuando el voltaje es insuficiente.

 Ejemplo

Supongamos que en la unidad se han creado los siguientes sensores:

  • Sensor del nivel de combustible con el nombre SNC, basado en el parámetro fuel_lvl;
  • Sensor de voltaje con el nombre Voltaje, basado en el parámetro pwr_ext.

Cuando el valor del sensor de voltaje cae por debajo de 9 voltios, el sensor analógico de nivel de combustible muestra valores erróneos. Para un control correcto del combustible, es necesario eliminar las lecturas falsas.

En este caso es necesario:

  1. Crear un Sensor digital personalizado con el nombre Voltaje suficiente basado en la expresión [Voltaje].

  2. Agregar una tabla de cálculo con las siguientes filas:
    X=0; a=0; b=0
    X=9; a=0; b=1

  3. En las propiedades del SNC, indicar el sensor Voltaje suficiente como validador y seleccionar el tipo de validación Comprobar no nulos.

Ahora, cuando el voltaje esté por debajo de 9 voltios, el sensor Voltaje suficiente tendrá un valor de 0 (Apagado), por lo tanto, no pasará la verificación de comprobar no nulos, debido a lo cual las lecturas del SNC se reemplazarán por un guion (N/A). Esto permitirá excluir datos erróneos del análisis.

El uso de la validación Comprobar no nulos es posible no solo en situaciones donde los sensores están relacionados entre sí a nivel físico (en el ejemplo anterior, el funcionamiento del sensor se ve afectado por un voltaje insuficiente), sino también en casos donde se observa una correlación entre los valores de los sensores. Por ejemplo, si nota que por alguna razón el SNC muestra valores falsos cuando el sensor de temperatura muestra un valor de 255, esto es suficiente para usar este tipo de validación.

Reemplazar sensor por validador en caso de error

Este tipo de validación también es bastante popular. La lógica de su funcionamiento es simple: si el sensor validado tiene un valor erróneo, se reemplaza por el valor del sensor validador.

Este es el único tipo de validación que puede reaccionar a valores erróneos del sensor que se muestran como un guion o N/A. Todos los demás tipos de validación, si hay un error en la entrada, mostrarán un error en la salida.

Este tipo es adecuado para situaciones en las que es necesario mostrar el valor de dos sensores como si fuera un solo sensor. Generalmente, puede haber dos razones para esto: o bien se reemplazó un sensor antiguo por uno nuevo, y los informes deben contener información tanto del intervalo de funcionamiento del sensor antiguo como del nuevo, o bien la unidad tiene simultáneamente dos sensores, pero uno de ellos muestra periódicamente un error, y en ese momento es necesario mostrar el valor del otro sensor. Consideremos ambos casos con ejemplos.

 Ejemplo 1

Supongamos que dentro del intervalo del informe, de la unidad llegaban mensajes que contenían los siguientes parámetros:

  • adc1 — muestra el nivel de combustible en voltios según el sensor del nivel de combustible instalado anteriormente (en los nuevos mensajes el parámetro está ausente);
  • param4 — muestra el nivel de combustible en voltios según el nuevo sensor del nivel de combustible (en los mensajes antiguos el parámetro está ausente).

Es necesario configurar los sensores de manera que en el informe se puedan mostrar datos sobre el combustible tanto del sensor antiguo como del nuevo.

En este caso es necesario:

  1. Crear un sensor del nivel de combustible con el nombre SNC (antiguo), basado en el parámetro adc1. En su tabla de cálculo del SNC (antiguo) es necesario introducir la antigua tabla de calibración para convertir voltio a litros.

  2. Crear un sensor del nivel de combustible con el nombre SNC, basado en el parámetro param4. En su tabla de cálculo es necesario introducir la nueva tabla de calibración para convertir voltios a litros. En las propiedades del SNC, indicar el sensor SNC (antiguo) como validador y seleccionar el tipo de validación Reemplazar sensor por validador en caso de error.

Esta tarea se puede resolver usando una expresión en la línea Parámetro, específicamente usando la operación Comprobación de disponibilidad del valor. Para esto es necesario:

  1. Crear un sensor del nivel de combustible con el nombre SNC (antiguo), basado en el parámetro adc1. En su tabla de cálculo es necesario introducir la antigua tabla de calibración para convertir voltios a litros.
  2. Crear un sensor del nivel de combustible con el nombre SNC, basado en el parámetro param4|[SNC (antiguo)]. En su tabla de cálculo es necesario introducir la nueva tabla de calibración para convertir voltios a litros.
 Ejemplo 2

Supongamos que de la unidad llegan mensajes que contienen los siguientes parámetros:

  • fls_rs485 — muestra el nivel de combustible en voltios según el sensor del nivel de combustible instalado;
  • fuel_lvl — muestra el nivel de combustible en litros según el sensor del nivel de combustible incorporado por el fabricante.

El SNC instalado es más preciso, pero a veces muestra un error, y en ese momento el cliente quiere ver las lecturas del SNC incorporado por el fabricante.

En este caso es necesario:

  1. Crear un Sensor personalizado con el nombre SNC incorporado, basado en el parámetro fuel_lvl.

  2. Crear un sensor del nivel de combustible con el nombre SNC, basado en el parámetro fls_rs485. En su tabla de cálculo es necesario introducir la tabla de calibración para convertir voltios a litros. En las propiedades del SNC, indicar el sensor SNC incorporado como validador y seleccionar el tipo de validación Reemplazar sensor por validador en caso de error.

Validación lógica

Este grupo incluye 4 tipos de validación:

  • Y lógico y O lógico — trabajan con valores lógicos (en Wialon se llaman digitales y son Encendido/Apagado o 1/0);
  • Operación Y y Operación O — trabajan por separado con cada bit de los números.

Consideremos estas variantes con ejemplos.

Y lógico / O lógico

Se puede decir que la operación Y lógico da un valor de 1 como resultado solo cuando ambos valores de entrada son 1, y O lógico — si al menos uno de los valores de entrada es 1.

Si suponemos que dos sensores están vinculados por validación, y uno de ellos se basa en el parámetro a, y el otro en el parámetro b, todos los posibles resultados se pueden describir en una tabla:

Tabla de verdad
aba Y ba O b

0

000
0101

1

001

1

111

El valor del sensor validado después de realizar las operaciones lógicas Y/O siempre será 0 o 1 (en este caso no se considera el error, es decir, un guion o N/A).

En la entrada también se esperan solo valores 0 o 1, sin embargo, en Wialon es posible una situación en la que se ingresen otros valores numéricos a la entrada de la validación. En tal caso, el sistema funcionará de la siguiente manera:

  • Solo 0 se percibe como 0 (Apagado).
  • Cualquier otro valor numérico (por ejemplo, 0.01, -0.01, 100500, -777, etc.) se percibirá como 1 (Encendido).

Idealmente, se deben evitar tales situaciones y usar una tabla de cálculo para convertir todos los valores entrantes solo en 0 o 1.

 Ejemplo 1

Supongamos que de la unidad llegan mensajes que contienen los siguientes parámetros:

  • in3 — igual a 0 cuando el equipo auxiliar está apagado, o 1 cuando está encendido;
  • in4 — igual a 0 cuando la puerta trasera está cerrada, o 1 cuando está abierta.

Es necesario crear un sensor que se active cuando el equipo auxiliar esté encendido y la puerta trasera esté abierta.

En este caso es necesario:

  1. Crear un Sensor digital personalizado con el nombre Equipo auxiliar, basado en el parámetro in3.

  2. Crear un Sensor digital personalizado con el nombre Puerta trasera abierta con equipo en funcionamiento, basado en el parámetro in4. Luego seleccionar el sensor Equipo auxiliar como validador y elegir el tipo de validación Y lógico.

Esta tarea también se puede resolver usando una expresión en la línea Parámetro. Para esto, es suficiente crear un Sensor digital personalizado con el nombre Puerta trasera abierta con equipo en funcionamiento, basado en la expresión in3*in4.

Este enfoque funcionará si los parámetros solo pueden tomar valores de 0 o 1.

 Ejemplo 2

Supongamos que de la unidad llegan mensajes que contienen los siguientes parámetros:

  • door11 — igual a 0 cuando la puerta delantera izquierda está cerrada, o 1 cuando esta puerta está abierta;
  • door12 — igual a 0 cuando la puerta delantera derecha está cerrada, o 1 cuando esta puerta está abierta.

Es necesario crear un sensor que se active cuando al menos una de las puertas delanteras del automóvil esté abierta.

En este caso es necesario:

  1. Crear un Sensor digital personalizado con el nombre Puerta delantera izquierda abierta, basado en el parámetro door11.

  2. Crear un Sensor digital personalizado con el nombre Apertura de puertas delanteras, basado en el parámetro door12. Luego indicar el sensor Puerta delantera izquierda abierta como validador y seleccionar el tipo de validación O lógico.

Esta tarea también se puede resolver usando una expresión en la línea Parámetro y una tabla de cálculo:

  1. Crear un Sensor digital personalizado con el nombre Apertura de puertas delanteras, basado en la expresión door11+door12.
  2. Agregar una tabla de cálculo con las siguientes filas: 
    X=0; a=0; b=0
    X=1; a=0; b=1

Este enfoque funcionará si los parámetros solo pueden tomar valores de 0 o 1.

Operación Y

Esta validación es útil para extraer una parte específica de bits de un parámetro. Implica la ejecución bit a bit de la Operación Y, como se demuestra a continuación.

Primero, usando la aplicación Calculadora en modo programador o herramientas en línea similares, es necesario convertir el número en cuestión del sistema decimal (DEC) al sistema binario (BIN).

Por ejemplo, el resultado de la Operación Y entre los números 122 y 15 tendrá el siguiente aspecto:


DECBIN
número 112201111010
número  21500001111

resultado de la Operación Y

1000001010

Si en el segundo número el bit es 0 (resaltado en rojo), entonces en el resultado este bit también será 0. Y si en el segundo número el bit es 1 (resaltado en verde), entonces en el resultado este bit tendrá el mismo valor que en el primer número. Se puede decir que usando la representación binaria del número 15 se realizó un filtrado del número 122 de tal manera que solo quedaron los 4 bits menos significativos.

 Ejemplo 1

Supongamos que de la unidad llegan mensajes que contienen un parámetro de 16 bits can_a1, que contiene información sobre diferentes sistemas de la unidad. Según la documentación del rastreador, en los 8 bits menos significativos del parámetro se encuentra la información sobre el nivel de combustible. Es necesario verificar esto y extraer la parte del parámetro de los 8 bits menos significativos para crear un sensor del nivel de combustible basado en ellos.

Por ejemplo, cuando un tanque de 100 litros está lleno al 40%, el valor del parámetro can_a1 puede tener los siguientes valores:

DECBIN
169980100001001100110
267260110100001100110
408061001111101100110
390141001100001100110

Como se puede notar fácilmente, el valor del parámetro can_a1 puede cambiar en la representación decimal, pero los 8 bits menos significativos del parámetro permanecen sin cambios (están resaltados en azul), ya que la cantidad de combustible en el tanque no cambia. Si convertimos los valores de los 8 bits menos significativos al sistema decimal, obtenemos:

(BIN) 0110 0110 = (DEC) 102

Y el valor máximo que se puede almacenar en 8 bits es:

(BIN) 1111 1111 = (DEC) 255

Usando operaciones aritméticas simples, verificamos que 102/255 = 40/100 = 0.4. De esto se puede concluir que los 8 bits menos significativos del parámetro realmente corresponden a un tanque lleno al 40%.

Para extraer la primera parte del parámetro es necesario:

  1. Crear un Sensor personalizado con el nombre 8 bits menos significativos basado en el parámetro const255.

  2. Crear un sensor del nivel de combustible con el nombre SNC basado en el parámetro can_a1. Luego seleccionar el sensor 8 bits menos significativos como validador y elegir el tipo de validación Operación Y. También es necesario introducir en la tabla de cálculo del sensor una tabla de calibración para convertir el resultado a litros.

Como en diferentes mensajes cada bit puede tener diferentes valores, designaremos los bits menos significativos como b y los más significativos como B:


DECBIN
can_a1
BBBBBBBBbbbbbbbb
número 22550000000011111111
resultado de la Operación Y
00000000bbbbbbbb

Como resultado, usando la representación binaria del número 255 se realizó un filtrado del parámetro can_a1 de tal manera que solo quedaron los 8 bits menos significativos.

Esta tarea se puede resolver usando una expresión en la línea Parámetro.

Para esto es necesario crear un sensor del nivel de combustible con el nombre SNC, basado en la siguiente expresión:

const128*can_a1:8+const64*can_a1:7+const32*can_a1:6+const16*can_a1:5+const8*can_a1:4+
const4*can_a1:3+const2*can_a1:2+const1*can_a1:1

Se puede obtener más información sobre esta solución en el artículo sobre trabajo con bits.

 Ejemplo 2

Supongamos que de la unidad llegan mensajes que contienen un parámetro de 16 bits can_b2, que contiene información sobre diferentes sistemas de la unidad. Según la documentación del rastreador, en los 8 bits más significativos del parámetro se encuentra la información sobre el nivel de combustible. Es necesario verificar esto y extraer la parte del parámetro de los 8 bits más significativos para crear un sensor del nivel de combustible basado en ellos.

Por ejemplo, cuando un tanque de 200 litros está lleno al 60%, el valor del parámetro can_b2 puede tener los siguientes valores:

DECBIN
392821001100101110010
392621001100101011110
393621001100111000010
392861001100101110110

Como se puede notar fácilmente, el valor del parámetro can_b2 puede cambiar en la representación decimal, pero los 8 bits más significativos del parámetro permanecen sin cambios (están resaltados en azul), ya que la cantidad de combustible en el tanque no cambia. Si convertimos los valores de los 8 bits más significativos al sistema decimal, obtenemos:

(BIN) 1001 1001 = (DEC) 153

Y el valor máximo que se puede almacenar en 8 bits es:

(BIN) 1111 1111 = (DEC) 255

Usando operaciones aritméticas simples, verificamos que 153/255 = 120/200 = 0.6. De esto se puede concluir que los 8 bits más significativos del parámetro realmente corresponden a un tanque lleno al 60%.

Para extraer la segunda parte del parámetro es necesario:

  1. Crear un Sensor personalizado con el nombre 8 bits más significativos basado en el parámetro const65280.

  2. Crear un Sensor personalizado con el nombre Bits filtrados basado en el parámetro can_b2. Luego seleccionar el sensor 8 bits más significativos como validador y elegir el tipo de validación Operación Y.

  3. Crear un sensor del nivel de combustible con el nombre SNC basado en la expresión [Bits filtrados]/const256. En su tabla de cálculo es necesario introducir una tabla de calibración para convertir el resultado a litros.

Como en diferentes mensajes cada bit puede tener diferentes valores, designaremos los bits menos significativos como b y los más significativos como B:


DECBIN
can_b2
BBBBBBBBbbbbbbbb
número 2652801111111100000000
resultado de la Operación Y
BBBBBBBB00000000
resultado después de dividir por 256
00000000BBBBBBBB

El desplazamiento de bits varios lugares hacia abajo se realiza dividiendo por 2 elevado a la potencia igual al número de lugares a desplazar. En este caso, es un desplazamiento de 8 lugares, por lo que la división se realiza por 28 = 256.

Como resultado, usando la representación binaria del número 65280 se realizó un filtrado del parámetro can_b2 de tal manera que solo quedaron los 8 bits más significativos, y luego se convirtieron en bits menos significativos mediante el desplazamiento.

Esta tarea se puede resolver usando una expresión en la línea Parámetro.

Para esto es necesario crear un sensor del nivel de combustible con el nombre SNC, basado en la siguiente expresión:

const128*can_b2:16+const64*can_b2:15+const32*can_b2:14+const16*can_b2:13+const8*can_b2:12+
const4*can_b2:11+const2*can_b2:10+const1*can_b2:9

Se puede obtener más información sobre esta solución en el artículo sobre trabajo con bits.

Operación O

Esta validación implica la ejecución bit a bit de la Operación O, como se demuestra a continuación.

Primero, usando la aplicación Calculadora en modo programador o herramientas en línea similares, es necesario convertir el número en cuestión del sistema decimal (DEC) al sistema binario (BIN).

Por ejemplo, el resultado de la Operación O entre los números 122 y 210 tendrá el siguiente aspecto:


DECBIN
número 112201111010
número 221011010010
resultado de la Operación O25011111010

Si al menos uno de los bits en los dos primeros números es 1, entonces en el resultado este bit será 1 (resaltado en verde). Y si ambos bits en los dos primeros números son 0, entonces en el resultado este bit será 0 (resaltado en rojo).

Oleg Zharkovsky,Customer Service Engineer

Sensores: trabajo con bits
  • technical_consulting
  • sensor_parameters

En la mayoría de los casos, los parámetros que llegan de los rastreadores tienen un formato fijo y describen un estado específico de la unidad, por lo que pueden ser interpretados inequívocamente por Wialon y mostrados en los mensajes. Sin embargo, algunos rastreadores pueden escribir información de contenido diferente o incluso varios bloques de información en un solo parámetro. En tal caso, para su correcta visualización en Wialon, será necesario configurar el sensor de una manera especial. Para esto, es necesario utilizar el control de parámetros bit a bit, que es de lo que trata este artículo.

Problemática

Existen rastreadores que permiten transmitir parámetros personalizados, cuyo contenido puede variar dependiendo de la configuración del dispositivo.

Por ejemplo, en Wialon puede mostrarse el parámetro user_value = 2646793773, aunque desde el lado del rastreador se pretendía transmitir uno de los siguientes valores:

  • 2646793773 — número entero sin signo;
  • 56877 y 40386 — varios números enteros;
  • −499310125 — número entero con bit de signo;
  • −5.15811×1021 o −0.00000000000000000000515811 — número de punto flotante,
  • etc.

Teóricamente, este problema se puede resolver desde el lado de Wialon mediante la modificación del script que analiza los datos que llegan del rastreador. Sin embargo, esto afectaría a todos los usuarios, y ellos pueden tener diferentes configuraciones de rastreadores, es decir, pueden esperar diferentes resultados del análisis de datos por parte del script. Afortunadamente, existe un método para resolver el problema que es adecuado para todos: crear un sensor con la fórmula necesaria. Además, se basará en la representación del parámetro en el sistema binario, ya que ya sabemos que la representación en el sistema decimal puede ser diferente. En forma binaria, el valor del parámetro del ejemplo anterior se escribe de la siguiente manera: 1001 1101 1100 0010 1101 1110 0010 1101. Ahora veamos cómo trabajar con el sistema binario.

Base teórica

En esta sección se examinará la información necesaria para aplicar las fórmulas posteriores.

Sistemas numéricos

En matemáticas se utilizan diferentes sistemas numéricos. Los más familiares para entender son los sistemas numéricos posicionales, en los que el valor de cada dígito depende de su posición. Por ejemplo, en el sistema decimal, el dígito 1, dependiendo de su posición en el número, puede significar una unidad (1), una decena (10), una centena (100) y así sucesivamente.

El número de dígitos utilizados en los sistemas numéricos posicionales se llama base.

En la tabla siguiente se muestran varios sistemas numéricos comunes:

Nombre

Notación

Base

Área de aplicación

Símbolos utilizados

Binario

BIN2

Matemática discreta, informática, programación

0, 1

Decimal

DEC10

En todas partes

0, 1, 2, 3, 4, 5, 6, 7, 8, 9

Hexadecimal

HEX16

Informática, programación

0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F

Para una rápida conversión de números de un sistema numérico a otro, se puede utilizar la aplicación Calculadora (está preinstalada en cada computadora, o se pueden encontrar sus análogos en Internet) en modo Programador (o similar).

Los números en Wialon se muestran en el sistema decimal. Las excepciones son los parámetros de texto, en los que se puede escribir un número (por ejemplo, el código hexadecimal del conductor), así como la visualización de entradas y salidas digitales en formato I/O.

Se puede inventar y usar cualquier sistema numérico, por ejemplo, el sistema de base 13, pero no es de uso común, lo que puede llevar a dificultades al analizar los datos en el lado receptor.

El uso de diferentes sistemas numéricos tiene no solo razones históricas o culturales, sino también fundamentos prácticos. El sistema binario, poco familiar para las personas, simplifica significativamente los cálculos matemáticos para los dispositivos electrónicos. Además, el sistema binario es conveniente desde el punto de vista de la simplicidad de reconocimiento de valores en presencia de ruido, ya que es más fácil distinguir la ausencia de voltaje de su presencia que determinar un nivel específico de voltaje de 0 a 9.

Bits y bytes

El sistema binario y el código binario son términos diferentes. El primero se refiere a las matemáticas (teoría), y el segundo principalmente a la tecnología digital (aplicación práctica). Pero en muchos aspectos estos términos se superponen, por lo que más adelante en el artículo saltaremos entre ellos, lo que no debería afectar la comprensión del tema al nivel de inmersión que necesitamos.

Bit es un dígito del código binario.

Byte es un conjunto de 8 bits.

Nibble es un grupo de 4 bits, que corresponde a un símbolo en el sistema hexadecimal.

Para facilitar la percepción, los números binarios a menudo se dividen en nibbles con espacios. Es decir, en lugar de escribir 10011101110000101101111000101101 se usará la escritura 1001 1101 1100 0010 1101 1110 0010 1101.

La numeración de bits en Wialon comienza desde 1. Usualmente, la numeración de bits comienza desde 0, por lo que las fórmulas que verá a continuación pueden diferir ligeramente de las encontradas en Internet u otras fuentes.

Números de punto flotante

Un número de punto flotante es una forma exponencial de representar números reales, en la que el número se almacena en forma de mantisa y exponente.

A continuación se muestran varios ejemplos de tales números:

125000 = 1.25 × 105 — aquí la mantisa es 1.25 y el exponente es 5.

0.000000125 = 1.25 × 10−7 — la mantisa es 1.25 y el exponente es −7.

125000000000000 = 1.25 × 1014 — la mantisa es 1.25 y el exponente es 14.

La ventaja de usar tal notación radica en la posibilidad de ampliar significativamente el rango de valores transmitidos mientras se mantiene el número de bits utilizados.

Para representar números de punto flotante en dispositivos digitales, se utiliza más comúnmente el estándar IEEE 754.

Aplicación práctica

En esta sección se examinarán diferentes variantes de parámetros de usuario y fórmulas para su interpretación en Wialon.

Ejemplos de su uso se pueden encontrar en las instrucciones.

Conversión de número binario a decimal entero

Para entender la fórmula de conversión, primero vale la pena mirar los números decimales desde un ángulo un poco inusual. Consideremos el número decimal 125. Consiste en 1 centena, 2 decenas y 5 unidades: 125 = 1 × 100 + 2 × 10 + 5 × 1.

Como ya sabemos, la base del sistema decimal es el número 10. También notemos que las centenas están en el tercer lugar, las decenas en el segundo, las unidades en el primero. Teniendo esto en cuenta, el número se puede representar como la suma de los valores de cada posición, multiplicados por la base del sistema numérico elevada a la potencia igual al número de la posición menos uno:

125 = 1 × 103−1 + 2 × 102−1 + 5 × 101−1 = 1 × 1022 × 101 + 5 × 100

Para calcular un número decimal entero a partir de un número binario, se usa la misma fórmula, pero la base será el número 2: la suma de los bits multiplicados por la base del sistema numérico elevada a la potencia igual al número del bit menos uno.

donde d es el número en el sistema decimal, i es el número del bit del número binario, N es el número de bits, bi es el valor del i-ésimo bit.

También esta fórmula se puede presentar de la siguiente manera:

d = bN × 2N−1 + ... + bi × 2i−1 + ... + b2 × 22−1 + b1 × 21−1

Consideremos un ejemplo con el mismo número:

BIN) 0111 1101 = (DEC) 0 × 28−1 + 1 × 27−1 + 1 × 26−1 + 1 × 25−1 + 1 × 24−1 + 1 × 23−1 + 0 × 22−1 + 1 × 21−1 =

= (DEC) 0 × 27 + 1 × 26 + 1 × 25 + 1 × 24 + 1 × 23 + 1 × 22 + 0 × 21 + 1 × 20 = (DEC) 26 + 25 + 24 + 23 + 22 + 20 =

= (DEC) 64 + 32 + 16 + 8 + 4 + 1 = (DEC) 125.

Esta fórmula es clave para trabajar con bits en Wialon. Todas las demás transformaciones se realizan sobre su base.

Si el valor llega en un parámetro con el nombre user_value, entonces teniendo en cuenta la sintaxis de Wialon, la fórmula tomará la siguiente forma:

user_value:8*const2^const7+user_value:7*const2^const6+user_value:6*const2^const5+user_value:5*const2^const4+user_value:4*const2^const3+user_value:3*const2^const2+user_value:2*const2^const1+user_value:1*const2^const0

Este formato de escritura de la fórmula parece más largo, sin embargo, permite rastrear fácilmente la numeración de bits y potencias, lo que permite no cometer errores al escribir la fórmula. Pero si conoce bien las potencias de dos, puede usar una versión simplificada de esta fórmula:

user_value:8*const128+user_value:7*const64+user_value:6*const32+user_value:5*const16+user_value:4*const8+user_value:3*const4+user_value:2*const2+user_value:1*const1

La longitud de la fórmula de conversión dependerá del número de bits considerados, por lo que no será posible copiarla directamente del artículo. Si según el protocolo del rastreador se asigna 1 byte (8 bits) al valor del parámetro, la fórmula será similar a la mostrada arriba (solo será necesario reemplazar el nombre del parámetro en ella). Y si se asignan 3 bytes al parámetro, la fórmula será 3 veces más larga y usará constantes hasta 2^23 = 8388608.

Extracción de parte del parámetro

Como se mencionó anteriormente, a veces un solo parámetro puede contener varios valores diferentes. En tal caso, es necesario usar la fórmula dada en la sección anterior, pero considerar solo algunos bits.

Como ejemplo, consideremos el parámetro user_value con el valor (DEC) 32200 = (BIN) 0111 1101 1100 1000. Su primer byte describe el valor del primer contador, y el segundo byte, el valor de otro contador. Es necesario crear dos sensores separados con fórmulas que usarán solo los bytes necesarios.

Parámetro

user_value

Número de bit del valor original

16151413121110987654321

Valor del bit

0111110111001000

Número de bit del valor buscado

8765432187654321

Sensor

Contador #2

Contador #1

La fórmula para el primer sensor será similar a la fórmula de la sección anterior, ya que los números de bits del valor original y buscado coinciden:

user_value:8*const2^const7+user_value:7*const2^const6+user_value:6*const2^const5+user_value:5*const2^const4+user_value:4*const2^const3+user_value:3*const2^const2+user_value:2*const2^const1+user_value:1*const2^const0

La fórmula para el segundo sensor será diferente, ya que nos referiremos a los bits 9-16, pero los percibiremos como bits 1-8:

user_value:16*const2^const7+user_value:15*const2^const6+user_value:14*const2^const5+user_value:13*const2^const4+user_value:12*const2^const3+user_value:11*const2^const2+user_value:10*const2^const1+user_value:9*const2^const0

Como resultado, de un solo número 32200 podremos obtener:

(BIN) 1100 1000 = (DEC) 200 — valor del primer contador.

(BIN) 0111 1101 = (DEC) 125 — valor del segundo contador.

Consideración del signo del número

En algunos casos, el valor del bit más significativo puede no ser significativo, sino de signo, es decir, contener información no sobre la magnitud del valor, sino sobre si este número es positivo o negativo.

Por ejemplo, si en el parámetro de usuario el rastreador envía el valor 13 o −5, Wialon no lo sabe, y en ambos casos veremos el mismo parámetro user_value = 13, ya que:

(DEC) 13 = (BIN) 1101

(DEC) −5 = (BIN) 1101 — el bit más significativo es responsable del signo menos, y (BIN) 101 = (DEC) 5.

Para interpretar correctamente el bit de signo, es necesario modificar la fórmula de conversión de número binario a decimal entero, agregando al principio −1 elevado a la potencia del bit más significativo:

donde d es el número en el sistema decimal, i es el número del bit del número binario, N es el número de bits, bes el valor del i-ésimo bit.

Esta fórmula también se puede representar de la siguiente manera:

d = (−1)bN × (bN-1 × 2(N−1)−1 + ... + bi × 2i−1 + ... + b2 × 22−1 + b1 × 21−1)

Esta fórmula funciona porque (−1)= 1, y (−1)1= −1, lo que permite representar el signo del número con un solo bit.

Si asumimos que el bit de signo es el bit número 32, para tenerlo en cuenta en Wialon es necesario añadir la siguiente fórmula al principio de la expresión en el sensor:

(const-1)^user_value:32*...

Conversión de un número binario a un número decimal de punto flotante

Se trata de la conversión de un número binario normalizado al formato de 32 bits según el estándar IEEE 754. Este estándar no implica la transmisión del número de punto flotante en sí, sino la transmisión de ciertos valores a partir de los cuales se puede calcular el número buscado según la siguiente fórmula:

d = (−1)S × 2(E−127) × (1 + M/223),

donde d es el número en el sistema decimal, S es el signo del número, E es el exponente desplazado, M es el resto de la mantisa normalizada.

Para aplicar esta fórmula no se requiere una comprensión completa de la misma, ya que el estándar describe en qué bits se almacenan S, E y M, que simplemente deben ser sustituidos en la expresión.

 Información adicional

En la fórmula proporcionada, no se utiliza el orden del número de punto flotante, que puede ser negativo (por ejemplo, 1.25×10−7), sino el exponente desplazado E, que siempre tiene un valor positivo. El desplazamiento inverso se logra restando 127 del exponente desplazado ya en la fórmula, lo que permite obtener valores negativos.

La mantisa binaria normalizada está en el rango [1; 2), es decir, su primer bit siempre es 1. Por lo tanto, en el estándar IEEE 754 este uno no se envía (ya que se conoce de antemano), sino que se añade en la fórmula en la etapa de cálculo del resultado. Esto permite ahorrar un bit y obtener una mayor precisión del valor transmitido. En la fórmula proporcionada, M no es la mantisa, sino su resto.

Como ejemplo, consideremos el número −5.15811×10−21, que se mostrará en el parámetro como user_value = 2646793773:

(DEC) 2646793773 = (BIN) 1001 1101 1100 0010 1101 1110 0010 1101

Bit de signo (S)

Exponente desplazado (E)

Resto de la mantisa normalizada (M)

3231302928272625242322212019181716151413121110987654321
10011101110000101101111000101101

Según la fórmula de conversión de número binario a decimal entero, obtenemos los valores de M y E.

El resto de la mantisa normalizada M será igual a:

user_value:23*const2^const22+user_value:22*const2^const21+user_value:21*const2^const20+user_value:20*const2^const19+user_value:19*const2^const18+user_value:18*const2^const17+user_value:17*const2^const16+user_value:16*const2^const15+user_value:15*const2^const14+user_value:14*const2^const13+user_value:13*const2^const12+user_value:12*const2^const11+user_value:11*const2^const10+user_value:10*const2^const9+user_value:9*const2^const8+user_value:8*const2^const7+user_value:7*const2^const6+user_value:6*const2^const5+user_value:5*const2^const4+user_value:4*const2^const3+user_value:3*const2^const2+user_value:2*const2^const1+user_value:1*const2^const0

El exponente desplazado E será igual a:

user_value:31*const2^const7+user_value:30*const2^const6+user_value:29*const2^const5+user_value:28*const2^const4+user_value:27*const2^const3+user_value:26*const2^const2+user_value:25*const2^const1+user_value:24*const2^const0

Ahora escribimos la fórmula final teniendo en cuenta la sintaxis de Wialon:

(const-1^user_value:32)*const2^(user_value:31*const2^const7+user_value:30*const2^const6+
user_value:29*const2^const5+user_value:28*const2^const4+user_value:27*const2^const3+
user_value:26*const2^const2+user_value:25*const2^const1+user_value:24*const2^const0-const127)*(const1+
(user_value:23*const2^const22+user_value:22*const2^const21+user_value:21*const2^const20+
user_value:20*const2^const19+user_value:19*const2^const18+user_value:18*const2^const17+
user_value:17*const2^const16+user_value:16*const2^const15+user_value:15*const2^const14+
user_value:14*const2^const13+user_value:13*const2^const12+user_value:12*const2^const11+
user_value:11*const2^const10+user_value:10*const2^const9+user_value:9*const2^const8+
user_value:8*const2^const7+user_value:7*const2^const6+user_value:6*const2^const5+
user_value:5*const2^const4+user_value:4*const2^const3+user_value:3*const2^const2+
user_value:2*const2^const1+user_value:1*const2^const0)/const2^const23)

O de forma simplificada:

(const-1^user_value:32)*const2^(user_value:31*const128+user_value:30*const64+user_value:29*const32+
user_value:28*const16+user_value:27*const8+user_value:26*const4+user_value:25*const2+
user_value:24*const1-const127)*(const1+(user_value:23*const4194304+user_value:22*const2097152+
user_value:21*const1048576+user_value:20*const524288+user_value:19*const262144+
user_value:18*const131072+user_value:17*const65536+user_value:16*const32768+user_value:15*const16384+
user_value:14*const8192+user_value:13*const4096+user_value:12*const2048+user_value:11*const1024+
user_value:10*const512+user_value:9*const256+user_value:8*const128+user_value:7*const64+
user_value:6*const32+user_value:5*const16+user_value:4*const8+user_value:3*const4+user_value:2*const2+
user_value:1*const1)/const8388608)

Al sustituir los valores numéricos, obtenemos:

(−1)1 × 2(59−127) × (1 + 4382253/223) = −0.00000000000000000000515811 = −5.15811×10−21

Como podemos ver, el resultado obtenido difiere significativamente del valor inicial del parámetro 2646793773.

La fórmula de conversión de un número binario normalizado al formato de 32 bits IEEE 754 es única para todos los rastreadores, ya que se trata de un estándar específico. Si en la documentación del rastreador ve que un parámetro personalizado puede enviarse según el estándar IEEE 754, y usted elige este formato de envío, entonces para la interpretación en Wialon puede copiar la expresión para el sensor directamente de este artículo, reemplazando solo el nombre del parámetro user_value, pero sin cambiar los números de bits.

Del siguiente bloque puede copiar cómodamente la fórmula para la conversión de un número binario a un número decimal de punto flotante (formato de 32 bits según el estándar IEEE 754):

(const-1^user_value:32)*const2^(user_value:31*const128+user_value:30*const64+user_value:29*const32+user_value:28*const16+user_value:27*const8+user_value:26*const4+user_value:25*const2+user_value:24*const1-const127)*(const1+(user_value:23*const4194304+user_value:22*const2097152+user_value:21*const1048576+user_value:20*const524288+user_value:19*const262144+user_value:18*const131072+user_value:17*const65536+user_value:16*const32768+user_value:15*const16384+user_value:14*const8192+user_value:13*const4096+user_value:12*const2048+user_value:11*const1024+user_value:10*const512+user_value:9*const256+user_value:8*const128+user_value:7*const64+user_value:6*const32+user_value:5*const16+user_value:4*const8+user_value:3*const4+user_value:2*const2+user_value:1*const1)/const8388608)

Oleg Zharkovsky,Customer Service Engineer

Kilometraje incorrecto
  • technical_consulting
  • trips

Un kilometraje incorrecto puede afectar el cálculo de la velocidad promedio, el consumo promedio de combustible por kilómetro, los intervalos de mantenimiento y, por supuesto, el indicador de distancia recorrida. Por lo tanto, es muy importante monitorear y resolver los problemas que surjan tanto en el lado del hardware como en el lado del software.

Si se encuentra con el problema de una determinación incorrecta del kilometraje en un informe, en el recorrido o en los mensajes, primero verifique qué tipo de contador de kilometraje está seleccionado en la pestaña Básicas en las propiedades de la unidad:

  • GPS
  • GPS + sensor de ignición
  • Sensor de kilometraje
  • Odómetro relativo

Una vez que sepa qué contador se utiliza en su unidad, seleccione la sección correspondiente del artículo.

1. GPS

La precisión del kilometraje cuando se usa este tipo de contador puede verse afectada por una conexión inestable con los satélites, fallas en la transmisión de datos, así como el uso de sensores adicionales. Consideremos estas opciones en más detalle.

a. Saltos de coordenadas y cronología incorrecta de mensajes

Los saltos de coordenadas pueden ocurrir debido a una mala conexión con los satélites del Sistema Global de Navegación por Satélite (GNSS). Para determinar si han ocurrido saltos, vaya a la pestaña Mensajes y solicite los datos para la unidad necesaria durante el período problemático. En el mapa verá un recorrido por la cual se podrá determinar la presencia de saltos: las coordenadas de los mensajes están significativamente alejadas de la ubicación real de la unidad.

En este ejemplo, un signo claro de problemas con la determinación de la ubicación de la unidad es el parámetro HDOP que tiene valores >1.

Wialon tiene una limitación: no más de 1 mensaje debe llegar de la unidad por 1 segundo. Si el rastreador transmite más de 1 mensaje en 1 segundo, la cronología de los mensajes puede verse alterada y el recorrido se verá de manera similar. La razón es la colocación incorrecta de mensajes con datos de posición (coordenadas) en la base de datos de Wialon. En tales casos, en la configuración del rastreador se debe reducir la frecuencia de envío de mensajes con datos.

Posibles soluciones:

  • Usar Filtración de validez de mensajes;
  • Cambiar la configuración de Detección de viajes.

En el ejemplo anterior, usando el sensor de ignición en la detección de viajes, se logró eliminar los saltos, ya que se registran en el intervalo sin ignición activada:

b. Uso del sensor de kilometraje

En algunos casos, el contador (pestaña Básicas en las propiedades de la unidad) funciona basado en coordenadas GPS, pero también se ha creado un sensor de kilometraje separado (pestaña Sensores en las propiedades de la unidad). En los informes, por ejemplo, con la tabla Viajes, la columna Kilometraje mostrará el valor según GPS (distancia total entre coordenadas), pero el valor de las columnas Kilometraje inicial/final se calculará mediante los siguientes métodos:

  • Si el valor del sensor de kilometraje está presente en el primer/último mensaje del intervalo, el sistema usa estos valores.
 Explicaciones

Supongamos que la unidad realmente recorrió 2 km, y los mensajes llegaron en el siguiente orden:

  1. 10 km
  2. -- km
  3. -- km
  4. 15 km

En la columna Kilometraje obtendremos 2 km (distancia total entre coordenadas sin tener en cuenta el sensor de kilometraje), en la columna Kilometraje inicial obtendremos 10 km (como en el mensaje), en la columna Kilometraje final obtendremos 15 km (como en el mensaje).

Un ejemplo similar, pero el valor del sensor de kilometraje solo está disponible en el último mensaje:

  1. -- km
  2. -- km
  3. -- km
  4. 15 km

En la columna Kilometraje obtendremos 2 km (distancia total entre coordenadas sin tener en cuenta el sensor de kilometraje), en la columna Kilometraje final obtendremos 15 km (como en el mensaje).

Y otro ejemplo donde el valor del sensor de kilometraje solo está disponible en el primer mensaje:

  1. 10 km
  2. -- km
  3. -- km
  4. -- km

En la columna Kilometraje obtendremos 2 km (distancia total entre coordenadas sin tener en cuenta el sensor de kilometraje), en la columna Kilometraje inicial obtendremos 10 km (como en el mensaje).

  • Si en el primer mensaje del intervalo no hay valor del sensor de kilometraje, el sistema busca el primer mensaje disponible con valor del sensor de kilometraje en este intervalo, y luego se resta de él el kilometraje hasta el inicio del viaje, calculado por coordenadas GPS.
 Explicaciones

Supongamos que la unidad realmente recorrió 2 km, y los mensajes llegaron en el siguiente orden:

  1. -- km
  2. -- km
  3. -- km
  4. 15 km

En la columna Kilometraje obtendremos 2 km (distancia total entre coordenadas sin tener en cuenta el sensor de kilometraje), en la columna Kilometraje inicial obtendremos 15 km — valor calculado por coordenadas GPS o 15 km - 2 km = 13 km, en la columna Kilometraje final obtendremos 15 km (como en el mensaje).

  • Si en el último mensaje del intervalo no hay valor del sensor de kilometraje, el sistema busca el último mensaje disponible con valor de kilometraje en este intervalo, y luego se le suma el kilometraje hasta el final del viaje, calculado por coordenadas GPS.
 Explicaciones

Supongamos que la unidad realmente recorrió 2 km, y los mensajes llegaron en el siguiente orden:

  1. 10 km
  2. -- km
  3. -- km
  4. -- km

En la columna Kilometraje obtendremos 2 km (distancia total entre coordenadas sin tener en cuenta el sensor de kilometraje), en la columna Kilometraje inicial obtendremos 10 km (como en el mensaje), en la columna Kilometraje final obtendremos 10 km + valor calculado por coordenadas GPS o 10 km + 2 km = 12 km.

  • Si en el primer y último mensaje no hay valor del sensor de kilometraje, el sistema busca el primer valor disponible del sensor, y luego resta de él el kilometraje calculado por coordenadas GPS para obtener el valor inicial, y para obtener el valor final, por el contrario, suma al valor del sensor el kilometraje calculado por coordenadas GPS.
 Explicaciones

Supongamos que la unidad realmente recorrió 2 km, y los mensajes llegaron en el siguiente orden:

  1. -- km
  2. 10 km
  3. 15 km
  4. -- km

En la columna Kilometraje obtendremos 2 km (distancia total entre coordenadas sin tener en cuenta el sensor de kilometraje), en la columna Kilometraje inicial obtendremos 10 km — valor calculado por coordenadas GPS hasta el primer mensaje del intervalo, en la columna Kilometraje final obtendremos 10 km + valor calculado por coordenadas GPS hasta el último mensaje del intervalo.

En tal situación, si debido a algún fallo el sensor de kilometraje no funcionaba y enviaba 0 km, es posible que aparezcan valores negativos de kilometraje:

En este ejemplo, para la unidad se creó un sensor de kilometraje basado en el parámetro can_mileage, que está ausente en los mensajes hasta el 18.12.2019 16:38:54:

Después de las 16:38 y en adelante, el parámetro siempre tiene un valor de 0, y el sensor, en consecuencia, un valor de 0 km.

Posibles soluciones:

  • Eliminar el sensor de kilometraje y cambiar completamente al kilometraje por coordenadas GPS;
  • Resolver el problema en el lado del hardware o cambiar a un parámetro con valores correctos.

En el ejemplo anterior, la solución fue eliminar el sensor y cambiar solo al kilometraje GPS, ya que los valores del parámetro no se leían del bus CAN.

2. GPS + sensor de ignición

La precisión del kilometraje cuando se usa este tipo de contador puede verse afectada por una conexión inestable con los satélites, fallas en la transmisión de datos, así como el uso de sensores adicionales. Sin embargo, una diferencia significativa del tipo GPS y una causa bastante frecuente de problemas en este tipo de contador será el uso de un sensor de ignición que funciona incorrectamente. Consideremos esta opción en más detalle.

Valor incorrecto del sensor de ignición

Como contador de kilometraje se ha seleccionado la opción GPS + sensor de ignición. Al construir el recorrido (a través de la pestaña Mensajes, Recorridos o Informes) el kilometraje es igual a 0 km, mientras que el recorrido en sí es visible en el mapa:

El recorrido en el mapa se construye según las coordenadas de los mensajes, mientras que el algoritmo de cálculo del kilometraje tiene en cuenta no solo las coordenadas y la distancia entre los mensajes, sino que también verifica si la ignición está activada.

En este ejemplo, no se ha creado un sensor de tipo Ignición para la unidad, por lo que el sistema ignora todos los mensajes y muestra 0 km de kilometraje:

Posibles soluciones:

  • Cambiar el contador de kilometraje a GPS;
  • Agregar un sensor de ignición que funcione correctamente.

En el ejemplo anterior, la unidad no envía un parámetro basado en el cual se pueda determinar el estado de la ignición, por lo que el problema se resolvió cambiando al tipo de contador GPS.

3. Sensor de kilometraje

Las lecturas de cualquier sensor, incluido el de kilometraje, pueden estar sujetas a factores externos como desconexión de energía, interferencias, fallos en los sensores, errores de calibración y configuraciones de sensores/rastreadores. Consideremos en detalle varios ejemplos de errores.

a. Reinicio de los valores del parámetro de kilometraje

Algunos rastreadores dejan de transmitir las lecturas del sensor de kilometraje durante un corto intervalo de tiempo (por ejemplo, debido a la desconexión de energía, interferencias en el circuito de alimentación, otros problemas con el equipo). En tales casos, el kilometraje total acumulado para la unidad puede diferir del último valor disponible del sensor:

En el ejemplo, el kilometraje total según el contador de kilometraje es de 26943 km, y según el sensor de kilometraje, solo 7069 km.

La razón es el reinicio del parámetro del sensor de kilometraje.

En tal situación, ocurre un reinicio a 0 km y luego nuevamente un crecimiento hasta 6452 km (en el ejemplo, tales reinicios se repitieron varias veces).

Posibles soluciones:

  • Usar el Límite inferior en la configuración del sensor;
  • Usar Validación si el reinicio ocurre en ciertas circunstancias y es posible identificar una dependencia con otros parámetros (sensores).

En el ejemplo anterior, es suficiente aplicar el límite inferior (0.01), ya que el reinicio ocurre arbitrariamente y no hay dependencia de otros sensores.

De esta manera, mediante el límite inferior se logró excluir los valores cero (reinicio a 0 km) y evitar un cálculo incorrecto del kilometraje.

b. Mensajes con la misma marca de tiempo (opción "Con desborde" activada)

Los rastreadores pueden enviar mensajes con demasiada frecuencia. Wialon tiene una limitación: no más de 1 mensaje debe llegar de la unidad por 1 segundo. Al recibir datos con mayor frecuencia, su cronología puede verse alterada y un valor menor de kilometraje puede entrar en la base de datos después de un mensaje con un valor mayor, ejemplo en la imagen a continuación:

En tales situaciones, ocurre un desborde del contador hasta el valor máximo posible de 2147483648.

Posibles soluciones:

  • Desactivar la opción Con desborde en la configuración del sensor (si estaba activada).

En el ejemplo anterior, la opción Con desborde estaba activada. Al desactivarla, obtuvimos un valor de kilometraje más correcto:

c. Mensajes con la misma marca de tiempo (opción "Con desborde" desactivada)

Los mensajes pueden llegar con la misma marca de tiempo, violando la cronología, por ejemplo:

En general, en la imagen de arriba, el kilometraje parece correcto — 25.01 km, a diferencia del ejemplo anterior donde el error era obvio. Sin embargo, si tomamos de los mensajes el valor inicial del sensor de kilometraje en el intervalo — 9917.81 km y el final — 9942.44 km, restamos la diferencia, obtendremos un kilometraje de 24.63 km.

La diferencia es de 0.38 km en un tramo relativamente pequeño del recorrido. El error aumentará con el aumento del volumen de datos (número de viajes). La causa del error es, por supuesto, la violación de la cronología de los mensajes. El sistema espera que el valor del sensor aumente. En el ejemplo, vemos una caída de 9931.03 km a 9930.85 km y un aumento posterior a 9931.29 km. Se produce un recálculo del kilometraje entre los mensajes con el valor del sensor 9930.85 km y 9931.29 km, es decir, se agregan 0.44 km adicionales.

Posibles soluciones:

  • Cambiar el contador de kilometraje a GPS;
  • Resolver el problema en el lado del hardware;
  • Cambiar el sensor de kilometraje al tipo Odómetro relativo y aplicar validación.

En el ejemplo anterior, se logró obtener valores de kilometraje más correctos cambiando el sensor de kilometraje al tipo Odómetro relativo con la adición de validación. El sensor de odómetro relativo se basa en un parámetro en forma de expresión: mileage-#mileage. El validador se basa en un parámetro en forma de expresión: time-#time. El límite inferior para el validador es 0, y el tipo de validación es Comprobar no nulos. El contador de kilometraje en la pestaña Básicas se cambió a Odómetro relativo.

Después de aplicar la validación, el kilometraje fue de 24.65 km. Los mensajes en los que la marca de tiempo coincide se excluyen del cálculo.

Si tiene preguntas sobre casos prácticos específicos, puede contactar al soporte técnico a través del correo support@wialon.com. Asegúrese de incluir en su correo una breve descripción de la situación con capturas de pantalla, el nombre exacto de la unidad, el nombre de la plantilla de informe para verificación, el intervalo de tiempo mínimo para verificación (por ejemplo, no un mes, sino un día), así como otros detalles importantes.

Pavel Chebotarev,Customer Service Engineer  

Control de Conducción Eficiente
  • technical_consulting
  • eco_driving

El control de conducción eficiente es necesario para determinar qué conductores ayudan a su empresa a reducir costos y quiénes usan el vehículo hasta el desgaste. Con esta herramienta, el despachador puede ver la evaluación de la calidad de conducción del vehículo bajo la responsabilidad del cierto conductor durante cualquier período de tiempo y para cada viaje por separado. Este artículo proporcionará la base teórica y recomendaciones prácticas importantes para configurar el control de conducción eficiente.

Base teórica

La característica clave que ayuda a determinar la calidad de conducción es la aceleración. Esta magnitud física no parece intuitivamente comprensible, por lo que en el marco del aprendizaje se puede comparar con una magnitud más comprensible: la velocidad.

Velocidad y aceleración

La velocidad caracteriza el cambio de posición durante un intervalo de tiempo determinado:

v = S / Δt,

donde v es la velocidad, S es la distancia recorrida durante el intervalo de tiempo considerado (se puede decir que es la diferencia de kilometraje del vehículo al final y al principio), Δt es la duración del intervalo.

Se puede decir que esta fórmula determina la velocidad promedio dentro del viaje. Pero cuanto menor sea el intervalo de tiempo considerado, más se acercará el resultado a la velocidad que se muestra en el velocímetro del vehículo.

La aceleración caracteriza el cambio de velocidad durante un intervalo de tiempo determinado:

a = Δv / Δt,

donde a es la aceleración, Δv es la diferencia de velocidad al final y al principio del intervalo de tiempo considerado, Δt es la duración del intervalo.

El valor promedio de aceleración durante un viaje casi no se utiliza al analizar el movimiento del automóvil, por lo que tiene sentido calcular solo la aceleración para el intervalo de tiempo mínimo.

Unidades de medida

La unidad de velocidad en el Sistema Internacional de Unidades (SI) es el metro por segundo (m/s), sin embargo, en la vida cotidiana se utiliza con más frecuencia la unidad de medida no estándar kilómetro por hora (km/h).

La unidad de aceleración en el SI es el metro por segundo al cuadrado (m/s²), sin embargo, a menudo se utiliza la unidad de medida no estándar g (que es la que se utiliza en Wialon).

g es la aceleración de la gravedad en la superficie de la Tierra, igual a 9.80665 m/s² (a menudo se usa la aproximación g ≈ 10 m/s²). En nuestro caso, es un valor estándar por el cual se divide el valor de aceleración para compararlo con algo más familiar (como la presión a menudo se muestra no en pascales, sino en atmósferas).

Una aceleración de 1 g corresponde a una aceleración de 0 a 100 km/h en 2.83 segundos.

La siguiente tabla ayudará a formar una idea del valor promedio de aceleración para diferentes tipos de movimiento:

Tipo de movimiento

Aceleración promedio m/s²
m/s2g

Ascensor de pasajeros

0.9—1.60.09—0.16

Tren de metro

10.1

Corredor de distancias cortas

1.50.15

Ciclista

1.70.17

Automóvil de pasajeros

2.5—30.25—0.3

Motocicleta

3—60.3—0.6

Automóvil de carreras

8—90.8—0.9

Frenado de emergencia de un automóvil

hasta 20hasta 2

Lanzamiento y frenado de una nave espacial

40—604—6

Maniobra de un avión a reacción

hasta 100hasta 10
 Ejemplo de cálculo de velocidad y aceleración

Usando las fórmulas proporcionadas, calcularemos la velocidad y la aceleración basándonos en las coordenadas de la unidad obtenidas del rastreador.

En el marco del ejemplo, contaremos el tiempo desde 0 segundos. Para simplificar, asumiremos que la unidad siempre se movió en línea recta y que entre los mensajes la velocidad del vehículo cambió uniformemente.

Número de mensaje

12345678

Tiempo, s

0510204070100103

Distancia, m

002515040090014001430

Velocidad, km/h

0018454560600

Aceleración, g

0.0000.0000.1020.0770.0000.0140.000-0.567

Basándonos en la tabla y el gráfico, podemos establecer las siguientes conclusiones:

  • La velocidad es igual a 0 cuando la unidad no cambia de posición.
  • La aceleración es igual a 0 cuando la unidad no cambia de velocidad (está parada o se mueve a velocidad constante).
  • Un valor positivo de aceleración corresponde a un aumento de velocidad, y uno negativo a una desaceleración.
  • Por la magnitud de la aceleración se puede juzgar cuán rápida y significativamente cambió la velocidad entre los mensajes.

Este ejemplo permite evaluar la interrelación entre posición, velocidad y aceleración. Los datos provenientes de un vehículo real pueden diferir de los proporcionados en el ejemplo, el que contiene convenciones y simplificaciones.

Acelerómetros

Los dispositivos para medir la aceleración se llaman acelerómetros. Las tecnologías modernas permiten crear acelerómetros en miniatura de menos de un milímetro de tamaño. Están ampliamente extendidos y se utilizan en muchos tipos de tecnología: smartphones, pulseras de fitness, rastreadores, automóviles, etc.

Dado que la aceleración es una magnitud vectorial, es decir, tiene dirección, para su medición completa se requieren tres acelerómetros instalados perpendicularmente entre sí. Juntos forman un acelerómetro triaxial, en el que, por ejemplo, el eje X muestra aceleración o frenado, el eje Y — giros, el eje Z — subidas y bajadas.

Un rastreador con acelerómetro o un sensor de aceleración separado pueden tener ejes dibujados en la caja, según los cuales debe colocarse en la unidad.

No existe una regla única para la dirección o nomenclatura de los ejes. Es decir, el eje Z puede estar dirigido no hacia arriba, sino hacia abajo, o en lugar del eje X hacia adelante puede estar dirigido el eje Y. Puede conocer esto a partir de la documentación del dispositivo.

Al instalar el dispositivo en la unidad, es importante que esté firmemente fijado.

No será posible instalar el dispositivo perfectamente nivelado en la unidad, por lo que después de la instalación es necesario realizar una calibración. En general, el procedimiento de calibración implica varias etapas: movimiento en línea recta, giros, frenado suave y brusco, viaje sin infracciones, viaje con infracciones. Sin embargo, para diferentes dispositivos, la calibración puede variar significativamente. Puede conocer sobre ella a partir de la documentación del dispositivo.

Dado que en los acelerómetros y rastreadores se utiliza la misma base de elementos (chips), sus lecturas no diferirán en más del 15% (y con una calibración correcta, este valor será aún menor).

Implementación en Wialon

La lógica general del control de conducción eficiente en Wialon se puede presentar de la siguiente manera:

  • En las propiedades de la unidad, en la pestaña Conducción Eficiente, se realizan ajustes y se crean criterios, es decir, reglas según las cuales se realizará la evaluación posteriormente.
  • La evaluación de los mensajes según los criterios se realiza al ejecutar un informe con ciertas tablas (la homónima Conducción Eficiente o algunas otras) o al trabajar con la aplicación Eco Driving.

A continuación, la atención se centrará en los lugares que más frecuentemente generan preguntas entre los usuarios.

Enfoque general para la configuración

Dependiendo de qué datos provienen del rastreador, la configuración de la conducción eficiente debe realizarse de manera diferente. A continuación se describirán todos los enfoques existentes, ordenados por precisión de mayor a menor.

Tipos de rastreadores

Precisión

Complejidad de configuración

Cálculo de aceleración por

Frecuencia de mensajes

Creación de sensores

Criterios para control de aceleración

1. El rastreador envía parámetros calculados de conducción eficiente

AltaFácilParámetros de conducción eficienteCualquieraNo se requiereAceleración, Frenado, Giro, Conducción imprudente

2. El rastreador envía parámetros calculados de aceleración en formato personalizado

AltaMediaNo importaCualquieraSe requierePersonalizados

3. El rastreador envía valores brutos de aceleración por ejes

MediaAltaNo importa1 vez cada 2 segundosSe requierePersonalizados

4. El rastreador no envía datos de aceleración de ninguna forma

BajaFácilGPS1 vez cada 2 segundosNo se requiereAceleración, Frenado, Giro, Conducción imprudente

A continuación, proporcionaremos algunos detalles sobre cada uno de los enfoques:

1. El rastreador envía parámetros calculados de conducción eficiente

Este enfoque es aplicable solo para ciertos tipos de dispositivos que utilizan algoritmos especiales para procesar datos del acelerómetro. Su lista se puede encontrar en el sitio web wialon.com en la sección Hardware usando el filtro Conducción eficiente.

En Wialon, los parámetros de conducción eficiente se llaman wln_accel_max, wln_brk_max y wln_crn_max. Simplificando, se puede decir que estos parámetros contienen valores correspondientes a la aceleración máxima registrada entre dos mensajes consecutivos. Esto permite configurar el rastreador a cualquier frecuencia de guardado de mensajes sin afectar la precisión del resultado.

Tales parámetros son reconocidos automáticamente por el sistema, por lo que no es necesario crear sensores adicionales. Es suficiente configurar el cálculo de aceleración según los parámetros de conducción eficiente y crear criterios con el tipo Aceleración, Frenado, Giro, Conducción imprudente.

2. El rastreador envía parámetros calculados de aceleración en formato personalizado

Estos rastreadores también utilizan algoritmos especiales para procesar datos del acelerómetro, lo que permite configurar el rastreador a cualquier frecuencia de guardado de mensajes sin afectar la precisión del resultado.

Sin embargo, estos rastreadores envían información sobre aceleración en un formato personalizado, por lo que tales parámetros no son reconocidos automáticamente por el sistema, por lo tanto, para su consideración es necesario crear sensores (lo más lógico es elegir el tipo Acelerómetro), y luego, basándose en estos sensores, crear criterios con el tipo Personalizado.

3. El rastreador envía valores brutos de aceleración por ejes

Si los rastreadores no tienen algoritmos especiales para procesar datos del acelerómetro, envían parámetros con lecturas en tres ejes en el momento de la generación del mensaje. En tal caso, cuanto mayor sea la frecuencia de guardado de mensajes, mayor será la precisión del resultado, sin embargo, esto llevará a un aumento del tráfico GPRS utilizado por el rastreador. La frecuencia recomendada es 1 mensaje cada 2 segundos.

Tales parámetros no son reconocidos automáticamente por el sistema, por lo tanto, para su consideración es necesario crear dos sensores (lo más lógico es elegir el tipo Acelerómetro): uno se basará en el parámetro del eje X (un valor positivo corresponderá a aceleración y uno negativo a frenado), y el otro se basará en el parámetro del eje Y (un valor positivo mostrará un giro en una dirección y uno negativo en la otra). El eje Z, relacionado con la aceleración vertical, no se utilizará para los cálculos. Luego, basándose en estos dos sensores, crear criterios con el tipo Personalizado.

Para dispositivos de este tipo, puede no estar previsto un procedimiento de calibración, debido a lo cual se requiere una configuración individual para cada eje para obtener lecturas precisas de aceleración.

Vale la pena repetir que no existe una regla única para la dirección o nomenclatura de los ejes. Puede conocer las direcciones de los ejes de su dispositivo a partir de su documentación.

4. El rastreador no envía datos de aceleración de ninguna forma

Si los rastreadores no tienen acelerómetro, es decir, no pueden medir la aceleración, se puede calcularla matemáticamente a partir de los datos del GPS. En tal caso, cuanto mayor sea la frecuencia de guardado de mensajes, mayor será la precisión del resultado, sin embargo, esto llevará a un aumento del tráfico GPRS utilizado por el rastreador. La frecuencia recomendada es 1 mensaje cada 2 segundos.

Luego es necesario configurar el cálculo de aceleración por GPS y crear criterios con el tipo Aceleración, Frenado, Giro, Conducción imprudente.

Si el rastreador no envía información sobre la dirección del movimiento (parámetro course), el sistema no podrá determinar infracciones según criterios con el tipo Giro.

Valores recomendados de criterios

La magnitud de la aceleración al conducir un vehículo depende de muchos factores: potencia del motor, condición técnica del vehículo, peso del vehículo, carga del cuerpo, agarre de los neumáticos con la carretera, calidad de la superficie de la carretera, condiciones meteorológicas, etc. Debido a esto, no existen normas generales recomendadas de aceleración al conducir un vehículo.

La fuente de información sobre los valores promedio de aceleración en diversas situaciones (aceleración suave, giro brusco, frenado de emergencia, etc.) puede ser literatura especializada, que debe contener información sobre modelos específicos de vehículos. También se podría ajustar a los valores que utilizan las compañías de seguros, sin embargo, debido a las peculiaridades de su actividad, no publican dicha información en acceso abierto.

En base a esto, vale la pena formar expectativas correctas del módulo Conducción eficiente: permite detectar infracciones de acuerdo con los criterios configurados y realizar una evaluación comparativa de varias unidades o conductores.

Plantillas de criterios

Para simplificar la configuración de criterios en Wialon, hay 3 plantillas estándar disponibles: para automóviles, para camiones y para autobuses. Con su ayuda, se pueden obtener varios criterios de inmediato, que se pueden dejar en su forma original, modificar ligeramente o simplemente usar como ejemplo para la configuración independiente.

Si utiliza las plantillas estándar de criterios para diferentes unidades, incluso si no está seguro de la exactitud de los valores en los criterios, podrá ver una evaluación relativa obtenida según las mismas reglas. Esto debería ser suficiente para hacer comparaciones dentro de una misma flota.

También es una buena recomendación verificar los criterios en la práctica. Para esto, es suficiente realizar varios viajes en el vehículo: en uno se debe mantener un estilo de conducción normal, y en otro, intentar cometer las mismas infracciones que luego deben ser monitoreadas. Después de esto, será suficiente revisar los mensajes del rastreador o ejecutar un informe con la tabla Conducción eficiente para determinar los valores de aceleración con diferentes estilos de conducción, y luego, basándose en ellos, determinar los límites para las infracciones.

Oleg Zharkovsky,Customer Service Engineer  

Consumo de combustible por cálculo matemático
  • technical_consulting
  • fuel
  • fuel_consumption
  • math_consumption

Algunos rastreadores no envían información sobre el combustible, o los sensores de combustible simplemente no están instalados en la unidad, sin embargo, los usuarios aún quieren ver información sobre el consumo en el informe.

Como alternativa a los sensores de combustible, se puede utilizar el Consumo por tarifa, que se configura en la pestaña Avanzadas. Su algoritmo de cálculo es simple: el kilometraje durante el intervalo se multiplica por la norma de consumo especificada (l/100 km), que puede variar según la temporada. Pero en este artículo examinaremos otra opción para calcular el consumo sin sensor, que requiere más explicaciones: el Consumo por cálculo, también llamado Cálculo matemático. Además, su ámbito de aplicación no se limita a una sola opción.

Dónde se utiliza el consumo por cálculo

En primer lugar, el consumo por cálculo se utiliza en informes para compensar la ausencia de sensores de combustible o para verificar sus lecturas. Para mostrar los resultados del cálculo matemático, agregue a la tabla las columnas Consumido por cálculo, Consumo promedio por cálculo u otras que incluyan "por cálculo" en su nombre.

El consumo por cálculo también se utiliza en algoritmos de combustible. Primero, para buscar descargas, si la opción Calcular descargas según el tiempo está activada. Segundo, para calcular el consumo en intervalos con valores erróneos, si la opción Reemplazar valores inválidos por los calculados matemáticamente está activada. Ambas opciones mencionadas se encuentran en los ajustes avanzados del Sensor del nivel de combustible (SNC).

Cómo funciona el cálculo matemático

El sistema determina el consumo esperado en el intervalo utilizando un modelo matemático. Se forma en base a:

  • sensores de funcionamiento del motor (Sensor de ignición del motor u Horas de motor absolutas/relativas), que indican la norma de consumo en ralentí;
  • sensores de eficiencia del motor (SEM), cada uno de los cuales indica la influencia de algún factor en el consumo de combustible (revoluciones del motor, temperatura, carga del eje, funcionamiento del aire acondicionado, equipo auxiliar, etc.).

El consumo por cálculo para un intervalo es la suma de los consumos entre todos los mensajes del intervalo. Para calcular el consumo por cálculo entre el mensaje actual y el anterior, se utiliza la siguiente fórmula:

Δt ⋅ ( CI 1 + CI 2 + ... + CI N ) ⋅ (KEES 1 + (KEES 2 - 1) + (KEES 3 - 1) + ... + (KEES M - 1)),

donde Δt es el tiempo entre mensajes; CI j es la norma de consumo en ralentí del i-ésimo sensor de funcionamiento del motor que estaba activado en el mensaje considerado; N es el número de sensores de funcionamiento del motor creados en la unidad; KEES i es el valor del j-ésimo sensor de eficiencia del motor en el mensaje considerado; M es el número de sensores de eficiencia del motor creados en la unidad.

La fórmula anterior se aplica solo para sensores interconectados. Si no hay SEM en la unidad o no están conectados con los sensores de funcionamiento del motor, se utiliza una fórmula abreviada:

Δt ⋅ ( CI 1 + CI 2 + ... + CI N )

Por qué vincular sensores de funcionamiento del motor, SEM y SNC

Algunas unidades tienen varios motores a la vez. Esto se aplica con mayor frecuencia a maquinaria especial, y un buen ejemplo aquí es un camión hormigonera: su motor principal hace que el vehículo se mueva, y un motor autónomo adicional gira el tambor mezclador. La aceleración del vehículo o el encendido del aire acondicionado pueden afectar el consumo del motor principal, pero no afectarán el consumo del motor adicional. Por lo tanto, algunos factores que influyen en el consumo (los tenemos en cuenta con SEM) afectan solo a uno de los motores (los tenemos en cuenta con sensores de funcionamiento del motor). Al mismo tiempo, la unidad puede tener varios tanques de combustible (los tenemos en cuenta con SNC), que también deben vincularse a un motor específico.

Para realizar la conexión, es necesario entrar en las propiedades del sensor de ignición o de los sensores de horas de motor absolutas/relativas y seleccionar los SEM correspondientes. De manera similar, en las propiedades del SNC se configura su conexión con los sensores de funcionamiento del motor.

Cómo crear rápidamente un modelo matemático

Para crear un modelo matemático básico, utilice el Asistente para consumo por cálculo, ubicado en la pestaña Sensores en las propiedades de la unidad. En la ventana del Asistente para consumo por cálculo, es necesario ingresar información sobre el consumo de combustible en diferentes modos de operación, así como el coeficiente estacional y las fechas de inicio y fin de la temporada. Consideremos estos campos en más detalle:

  • Consumo (l/h) implica el consumo en ralentí, es decir, con el motor encendido y sin movimiento. La Velocidad mínima de movimiento se toma de la Detección de viajes.
  • Ciclo urbano y Ciclo suburbano (l/100km) son características estándar del vehículo que se pueden encontrar en documentos, en Internet o calcular en la práctica. Al mismo tiempo, en diferentes países se utilizan diferentes enfoques para determinar estos ciclos. En Wialon, la norma del ciclo urbano corresponde a una velocidad de 36 km/h, y la del ciclo en carretera a 80 km/h.
  • El Coeficiente estacional (%) implica en qué porcentaje aumenta el consumo de combustible durante la temporada especificada en relación con el resto del año. La consideración del coeficiente estacional se puede desactivar si no se observa un cambio significativo de temperatura durante el año en el área de uso del vehículo.

Cuantos más datos ingrese, más preciso funcionará el modelo matemático, sin embargo, como mínimo es necesario ingresar al menos el consumo en el ciclo urbano.

Al completar el Asistente para consumo por cálculo, creará un modelo matemático básico que solo tiene en cuenta la velocidad de la unidad y la influencia de la temporada. Tal modelo es aproximado, ya que en realidad la velocidad no afecta el consumo  lo que afecta son las revoluciones del motor, así como la temporada no afecta  en realidad, lo que afecta el consumo es la temperatura. Sin embargo, la mayoría de los rastreadores por defecto no envían información sobre las revoluciones del motor y la temperatura. Por lo tanto, elegimos un modelo que es adecuado para todos los rastreadores.

No será posible crear un modelo más preciso automáticamente, pero se puede hacer manualmente agregando SEM por cuenta propia.

Cómo funcionan los sensores de eficiencia del motor

El valor del SEM (Sensor de eficiencia del motor) en cada mensaje debe mostrar cuántas veces algún factor influyente aumenta el consumo en ralentí en relación con el consumo sin la influencia de este factor. Para una mejor comprensión, consideremos un ejemplo.

Supongamos que el consumo en ralentí es de 2 l/h, y cuando se enciende el sistema de calefacción, el consumo aumenta a 2.2 l/h. Por lo tanto, la relación de estas cantidades es: 2.2/2 = 1.1 También supongamos que el parámetro in4 indica inequívocamente el estado del sistema de calefacción: si este parámetro es igual a 0, la calefacción está apagada, y si es igual a 1, está encendida. En este caso, para tener en cuenta la influencia del sistema de calefacción en el consumo, es necesario crear un sensor con el tipo Sensor de eficiencia del motor, especificar in4 en la línea Parámetro, y agregar las siguientes líneas a la Tabla de cálculo:

x = 0; a = 0; b = 1
x = 1; a = 0; b = 1.1

Resulta que cuando el sistema de calefacción está apagado, el SEM aumenta el consumo en 1 vez (es decir, no lo cambia en absoluto), y cuando está encendido, lo aumenta en 1.1 veces. Adicionalmente, vale la pena señalar que un valor cero del SEM tampoco cambiaría el consumo.

De la manera descrita anteriormente, se puede tener en cuenta la influencia de un factor en el consumo esperado. Si hay varios sensores de eficiencia del motor, todos sus valores se consideran simultáneamente, formando el consumo esperado en el intervalo entre dos mensajes (ver la fórmula anterior).

Cómo hacer el consumo por cálculo más preciso

Cabe señalar de inmediato que si ha activado la opción Calcular descargas según el tiempo en las propiedades del sensor del nivel de combustible, el sistema comparará el consumo por cálculo con el consumo por SNC, y las lecturas de este último, desafortunadamente, no son muy precisas. Por lo tanto, no es necesario tratar de llevar el modelo matemático a la perfección, ya que al final esto puede no afectar el resultado de la comparación con el SNC.

Sin embargo, puede intentar aumentar la precisión del modelo de las siguientes maneras.

Considere más factores

Puede crear más SEM basados en parámetros del rastreador que describen factores que influyen en el consumo.

Vale la pena señalar que muchos factores afectan el consumo, pero el grado de su influencia puede variar. Por ejemplo, probablemente no vale la pena instalar un sensor de humedad del aire, aunque también puede afectar el consumo. Medir la presión de los neumáticos tiene más sentido, aunque por otro lado es mejor simplemente no permitir el uso de neumáticos desinflados. Pero no espere una alta precisión del modelo matemático si decide ignorar el peso de la carga, que se puede medir con un sensor de carga del eje. Es decir, la elección de los factores a considerar debe abordarse teniendo en cuenta el grado de su influencia en el resultado.

Aumente la precisión de la medición de parámetros

Esta recomendación se deriva de la anterior. Para mejorar el resultado, no solo puede aumentar el número de sensores, sino también utilizar sensores de mayor precisión.

Aumente la frecuencia de generación de mensajes

Si los factores que influyen en el consumo cambian con frecuencia, el rastreador también debe generar mensajes con frecuencia, de lo contrario no será posible tenerlos en cuenta completamente. Por ejemplo, esto se aplica a los viajes por la ciudad, durante los cuales un automóvil puede detenerse en varios semáforos en 10 minutos, pero si durante este tiempo solo se registra un mensaje en la memoria del rastreador, el modelo matemático simplemente no podrá tener en cuenta cada cambio de velocidad.

Por qué el consumo por cálculo muestra valores incorrectos

Puede haber varias razones para tal comportamiento.

  1. Las normas utilizadas en el Asistente para consumo por cálculo pueden diferir de las reales (por ejemplo, debido al desgaste del vehículo). En este caso, puede verificar en la práctica su correspondencia con la realidad.
  2. Puede estar relacionado con una configuración incorrecta del consumo por cálculo. Verifique que en las propiedades del sensor de funcionamiento del motor se especifique un valor no nulo en la línea Consumo, l/h. También asegúrese de que el sensor de funcionamiento del motor y el SEM estén conectados.
  3. La frecuencia de generación de mensajes por el rastreador puede ser demasiado baja.
  4. Puede explicarse por una falla del sensor cuyas lecturas se utilizan en el modelo matemático.
  5. En algunos casos, el sistema puede considerar que la ignición estuvo activada todo el tiempo mientras el rastreador no enviaba mensajes. En este caso, el modelo matemático mostrará que el motor debería haber estado consumiendo combustible todo este tiempo. Para corregir la situación, intente establecer un valor correcto para la opción Intervalo máximo entre mensajes en la pestaña Avanzadas en las propiedades de la unidad. Se puede lograr el mismo resultado utilizando la opción Tiempo de espera en las propiedades del sensor de ignición.

Si tiene preguntas sobre casos prácticos específicos, debe comunicarse con el soporte técnico a través del correo support@wialon.com. Asegúrese de incluir en su correo una breve descripción de la situación con capturas de pantalla, el nombre exacto de la unidad, el nombre de la plantilla de informe para verificación, el intervalo de tiempo mínimo para verificación (por ejemplo, no un mes, sino un día), así como otros detalles importantes.

Oleg Zharkovsky,Customer Service Engineer

Diferencias entre los algoritmos de combustible
  • technical_consulting
  • fuel

En esta página solo se indican las diferencias clave entre los algoritmos de combustible. No pretendo enumerar todas las posibles combinaciones de configuraciones de las propiedades del sensor del nivel de combustible, aunque todas ellas afectan en cierta medida al procesamiento de datos. Para estudiar cada una de las opciones, recomiendamos ver los webinarios (Parte I, Parte II, Parte III) o recurrir a la comprobación práctica. Puede cambiar la configuración sin preocuparse por los datos originales, ya que cambiar las opciones de combustible no altera los mensajes, solo afecta al resultado mostrado.

Qué algoritmo elegir

A continuación se presenta una lista de características de los algoritmos que debería ayudarle a tomar una decisión.

Algoritmo por kilometraje

  1. Adecuado para la mayoría de las unidades móviles.
  2. Relativamente fácil de configurar.
  3. Se utiliza por defecto.

Algoritmo por tiempo

  1. Adecuado:
    • para unidades estacionarias,
    • para unidades con largos intervalos de ralentí,
    • para unidades con equipos adicionales que aumentan el consumo,
    • cuando se sospecha de descargas durante el movimiento,
    • si el algoritmo por kilometraje no da los resultados esperados.
  2. Más complejo de configurar.
  3. Para activarlo, se recomienda habilitar simultáneamente las siguientes opciones en las propiedades del sensor del nivel de combustible:
    • Calcular el consumo de combustible según el tiempo,
    • Calcular llenados según el tiempo,
    • Calcular descargas según el tiempo para procesar las descargas también se requiere un modelo matemático de consumo, que se puede crear, por ejemplo, con el Asistente para consumo por cálculo.

Cuál es la diferencia entre los algoritmos

Primero, cabe señalar que el algoritmo por kilometraje en cierto sentido sería más correcto llamarlo algoritmo por velocidad, ya que ignora los mensajes cuya velocidad es menor que la Velocidad mínima de movimiento establecida en la Detección de viajes. Pero como el kilometraje aumenta cuando hay velocidad, el nombre actual también es bastante apropiado.

De lo descrito anteriormente se deduce que la diferencia clave entre los algoritmos es que el algoritmo por tiempo analiza todos los mensajes, mientras que el algoritmo por kilometraje excluye del análisis parte de los mensajes, utilizando una simplificación. Se basa en que se puede juzgar el cambio en el nivel de combustible durante una parada o estacionamiento (es decir, en un intervalo de baja velocidad) por dos mensajes antes y después de la parada o estacionamiento considerado. Por ejemplo, si el vehículo estuvo en el estacionamiento de 14:00 a 16:00, y la descarga se realizó entre las 15:00-15:10, se puede conocer el hecho de la descarga simplemente comparando los niveles de combustible a las 14:00 y 16:00.

Consumo

En ambos algoritmos, el cálculo del consumo para un intervalo se realiza de manera similar: del valor del nivel de combustible al inicio del intervalo se resta el valor del nivel al final del intervalo, y luego se suma el volumen de llenados para ese intervalo. Sin embargo, de la diferencia clave de los algoritmos aún se deduce que consideran diferentes intervalos.

Adicionalmente, señalo que el volumen de descargas por defecto está incluido en el consumo, hasta que se active la opción Excluir descargas del consumo de combustible en los ajustes de la plantilla de informe.

Llenados de combustible

La detección de llenados también ocurre de la misma manera para ambos algoritmos: el sistema busca mensajes con un aumento secuencial en las lecturas del sensor del nivel de combustible. Sin embargo, el algoritmo de cálculo de llenados por kilometraje calcula el llenado durante las paradas usando solo dos puntos (nivel de combustible al final del intervalo de movimiento anterior y al inicio del siguiente), sin analizar todos los mensajes del intervalo considerado.

Descargas de combustible

La detección de descargas se realiza por diferentes métodos:

  • El algoritmo por kilometraje calcula la descarga durante la parada usando dos puntos (niveles de combustible al final del intervalo de movimiento anterior y al inicio del siguiente), sin analizar todos los mensajes del intervalo considerado.
  • El algoritmo por tiempo compara el consumo real según el sensor del nivel de combustible con el consumo esperado determinado por el modelo matemático.

Si tiene preguntas sobre casos prácticos específicos, debe comunicarse con el soporte técnico a través del correo support@wialon.com. Asegúrese de incluir en su correo una breve descripción de la situación con capturas de pantalla, el nombre exacto de la unidad, el nombre de la plantilla de informe para verificación, el intervalo de tiempo mínimo para verificación (por ejemplo, no un mes, sino un día), así como otros detalles importantes.

Oleg Zharkovsky,Customer Service Engineer

No se detecta el llenado de combustible
  • technical_consulting
  • fuel
  • fuel_fillings

Los llenados de combustible se muestran en los informes cuando los datos recibidos del rastreador cumplen con todos los criterios de detección de llenados de combustible. Sin embargo, en algunos casos, la tabla Llenados de combustible y recargas de batería no muestra resultados, aunque usted sabe con certeza que se realizó un llenado de combustible y en la gráfica del informe se ve un aumento brusco en la línea de Nivel de combustible. Siguiendo las recomendaciones simples de este artículo, podrá corregir la situación y también comprender la lógica de funcionamiento de algunas configuraciones de combustible.

Posibles causas y sus soluciones

A veces, para resolver el problema será suficiente seguir solo una recomendación de la lista a continuación. Con más frecuencia, será necesario seguir varias recomendaciones a la vez. Pero en casos particulares, no se podrá evitar un análisis detallado de todas las configuraciones del sensor del nivel de combustible, así como de las características de los mensajes y parámetros entrantes.

Al mismo tiempo, a menudo resulta que corregir la situación con la visualización de un llenado de combustible lleva a la aparición de otras discrepancias en los informes de combustible. Por lo tanto, el análisis de los datos de combustible debe abordarse de manera integral, considerando no solo un llenado de combustible, sino varios simultáneamente.

1. El llenado de combustible se ignora debido al suavizado

Intente reducir el nivel de filtración en las propiedades del sensor del nivel de combustible (SNT).

 Explicaciones

El nivel de combustible en el tanque fluctúa debido al funcionamiento del motor, aceleraciones, frenados, giros, irregularidades en la carretera, inclinación del vehículo, etc.

Cuanto mayor sea el nivel de filtración, más fuerte será el suavizado aplicado para compensar las fluctuaciones en las lecturas del SNC. Cuanto más fuerte sea el suavizado, más fácil será analizar los datos procesados, pero más distorsionada estará la información de entrada. Por lo tanto, para obtener la precisión requerida, el nivel de filtración debe establecerse en el mínimo necesario. Si el nivel de filtración es demasiado alto, los datos procesados pueden ya no contener el cambio en el nivel de combustible correspondiente al llenado de combustible. En la mayoría de los casos, no se recomienda usar un nivel de filtración superior a 10.

A menudo, los llenados de combustible de prueba no se muestran precisamente por esta razón: se realizan inmediatamente después o antes de una descarga, por lo que el cambio temporal en el nivel de combustible se ignora como resultado del suavizado. Los llenados de combustible reales no implican que el nivel de combustible vuelva al anterior, por lo que no se omitirán por la razón indicada.

También puede intentar activar la filtración de mediana adaptable.

2. El llenado de combustible se filtra por volumen

Intente reducir el valor de la opción Volumen mínimo de llenado en las propiedades del sensor del nivel de combustible.

 Explicaciones

Esta opción es una especie de filtro grueso que separa el llenado de combustible de las fluctuaciones normales del nivel de combustible que permanecerán incluso después de aplicar la filtración. Por lo tanto, el Volumen mínimo de llenado debe elegirse en proporción al valor de estas fluctuaciones, que en algunos casos pueden alcanzar incluso 20 litros o más.

Si se establece un Volumen mínimo de llenado de combustible demasiado alto, el llenado de combustible real puede desaparecer de los resultados del informe.

3. El llenado de combustible ocurre con presencia de velocidad

Ajuste la configuración de la Detección de viajes, aumentando la Velocidad mínima de movimiento, si la velocidad no está relacionada con el viaje real de la unidad, sino con la inexactitud de los datos originales. Sin embargo, si la velocidad en tales mensajes es comparable con la velocidad durante los viajes reales (por ejemplo, más de 10 km/h), es probable que estos mensajes se puedan eliminar, y para evitar situaciones similares en el futuro, se puede intentar filtrarlos. Tenga en cuenta que no podrá restaurar los mensajes eliminados manualmente o como resultado de la aplicación de la Filtración de validez de mensajes, por lo que estos pasos deben abordarse con especial atención.

 Explicaciones

La velocidad determinada por el rastreador y mostrada en el sistema de rastreo no siempre indica inequívocamente que la unidad se está moviendo. Esto se debe a la presencia de errores en los sistemas de navegación por satélite (GPS, GLONASS, etc.). Para determinar el hecho del movimiento, se utiliza la Velocidad mínima de movimiento, que define el umbral mínimo del valor de velocidad reconocido por el sistema como movimiento.

En casos raros, el error en el valor de la velocidad alcanza valores grandes, lo que puede estar relacionado tanto con la calidad del rastreador como con el entorno (relieve, ubicación en un edificio, presencia de grandes estructuras metálicas cercanas, etc.). Algunos rastreadores pueden marcar automáticamente los mensajes con velocidad inexacta como no válidos. Sin embargo, mediante la Filtración de validez de mensajes, puede encontrar y filtrar tales mensajes no válidos ya en Wialon. Este filtrado se aplica solo a los mensajes que llegarán al servidor después de habilitar la configuración correspondiente, por lo que los mensajes no válidos antiguos deberán eliminarse manualmente.

Otro método de solución es activar la opción Detectar llenados solo cuando el vehículo está parado y aumentar el Tiempo de espera para separar llenados consecutivos en las propiedades del sensor del nivel de combustible.

 Explicaciones

Los sensores de nivel de combustible pueden tener inercia, es decir, enviar datos con retrasos temporales. Para algunos SNC, esto es el resultado de la filtración incorporada; en otros casos, el retraso en la llegada de datos implica la necesidad de mantenimiento del SNC (por ejemplo, limpieza del orificio de drenaje).

4. El llenado de combustible está marcado como falso y luego oculto

Active la opción Mostrar eventos falsos en los ajustes de la plantilla de informe. Luego, ejecute el informe nuevamente y desmarque la indicación de que el llenado de combustible es falso.

 Explicaciones

En los informes, existe la posibilidad de marcar los llenados de combustible como falsos. Esto se hace en caso de que la configuración actual del sensor del nivel de combustible se considere óptima para la unidad, pero el sistema sigue mostrando llenados de combustible incorrectos según los mensajes entrantes.

Los llenados de combustible marcados como falsos se muestran en el informe solo cuando se activa la opción correspondiente.

Ninguna de las opciones es adecuada

Probablemente se ha encontrado con una situación más compleja que las consideradas anteriormente, y debería contactar al soporte técnico a través del correo support@wialon.com. Asegúrese de incluir en su correo el nombre exacto de la unidad, el nombre de la plantilla de informe para verificación, el intervalo de tiempo mínimo para verificación (por ejemplo, no un mes, sino varios días), así como otros detalles importantes.

Oleg Zharkovsky,Customer Service Engineer

No se detecta la descarga de combustible
  • technical_consulting
  • fuel
  • fuel_thefts

Las descargas de combustible se muestran en los informes cuando los datos recibidos del rastreador cumplen con todos los criterios de detección de descargas. Sin embargo, en algunos casos, la tabla Descargas de combustible no muestra resultados, aunque usted sabe con certeza que se realizó una descarga de combustible y en la gráfica del informe se ve una caída brusca en la línea de Nivel de combustible. Siguiendo las recomendaciones simples de este artículo, podrá corregir la situación y también comprender la lógica de funcionamiento de algunas configuraciones de combustible.

Posibles causas y sus soluciones

A veces, para resolver el problema será suficiente seguir solo una recomendación de la lista a continuación. Con más frecuencia, será necesario seguir varias recomendaciones a la vez. Pero en casos particulares, no se podrá evitar un análisis detallado de todas las configuraciones del sensor del nivel de combustible, así como de las características de los mensajes y parámetros entrantes.

Al mismo tiempo, a menudo resulta que corregir la situación con la visualización de una descarga de combustible lleva a la aparición de otras discrepancias en los informes de combustible. Por lo tanto, el análisis de los datos de combustible debe abordarse de manera integral, considerando no solo una descarga de combustible, sino varias simultáneamente.

1. La descarga de combustible se ignora debido al suavizado

Intente reducir el nivel de filtración en las propiedades del sensor del nivel de combustible (SNC).

 Explicaciones

El nivel de combustible en el tanque fluctúa debido al funcionamiento del motor, aceleraciones, frenados, giros, irregularidades en la carretera, inclinación del vehículo, etc.

Cuanto mayor sea el nivel de filtración, más fuerte será el suavizado aplicado para compensar las fluctuaciones en las lecturas del SNC. Cuanto más fuerte sea el suavizado, más fácil será analizar los datos procesados, pero más distorsionada estará la información de entrada. Por lo tanto, para obtener la precisión requerida, el nivel de filtración debe establecerse en el mínimo necesario. Si el nivel de filtración es demasiado alto, los datos procesados pueden ya no contener el cambio en el nivel de combustible correspondiente a la descarga. En la mayoría de los casos, no se recomienda usar un nivel de filtración superior a 10.

A menudo, las descargas de combustible de prueba no se muestran precisamente por esta razón: se realizan inmediatamente después o antes de un llenado de combustible, por lo que el cambio temporal en el nivel de combustible se ignora como resultado del suavizado. Las descargas de combustible reales no implican que el nivel de combustible vuelva al anterior, por lo que no se omitirán por la razón indicada.

También puede intentar activar la filtración de mediana adaptable.

2. La descarga de combustible se filtra por volumen

Intente reducir el valor de la opción Volumen mínimo de descarga en las propiedades del sensor del nivel de combustible.

 Explicaciones

A menudo, la precisión del 1% declarada por los fabricantes de SNC no permite detectar pequeñas descargas en condiciones reales debido a las fluctuaciones de combustible en el tanque mencionadas anteriormente. Por lo tanto, establecer inmediatamente el Volumen mínimo de descarga, por ejemplo, en 1 litro, sería bastante optimista. Esta opción es una especie de filtro grueso que separa la descarga de las fluctuaciones normales del nivel de combustible que permanecerán incluso después de aplicar la filtración. Por lo tanto, el Volumen mínimo de descarga debe elegirse en proporción al valor de estas fluctuaciones, que en algunos casos pueden alcanzar incluso 20 litros o más.

Si se establece un Volumen mínimo de descarga demasiado alto, la descarga real puede desaparecer de los resultados del informe.

3. La descarga ocurre en paradas cortas

Intente reducir el valor de la opción Tiempo sin movimiento mínimo para detectar una descarga de combustible en las propiedades del sensor del nivel de combustible.

 Explicaciones

En el momento de una parada corta, el nivel de combustible puede cambiar bruscamente, por lo que el análisis de paradas cortas llevará a la detección de falsas descargas. Con la opción Tiempo sin movimiento mínimo para detectar una descarga de combustible, puede configurar el sistema para buscar descargas solo durante paradas y estacionamientos prolongados.

Si se establece un Tiempo sin movimiento mínimo para detectar una descarga de combustible alto, una parada o estacionamiento prolongado pueden excluirse del análisis y la descarga no se tendrá en cuenta.

4. La descarga ocurre con presencia de velocidad

Active la opción Detectar descargas de combustible en movimiento en las propiedades del sensor del nivel de combustible si en el momento de la descarga la unidad realmente estaba en movimiento. Tenga en cuenta que para obtener un resultado correcto en este caso, se recomienda activar la opción Calcular descargas según el tiempo.

Otro método de solución es aumentar la Velocidad mínima de movimiento en la pestaña Detección de viajes, si la velocidad no está relacionada con el viaje real de la unidad, sino con la inexactitud de los datos originales. Sin embargo, si la velocidad en tales mensajes es comparable con la velocidad durante los viajes reales (por ejemplo, más de 10 km/h), es probable que estos mensajes se puedan eliminar, y para evitar situaciones similares en el futuro, se puede intentar filtrarlos. Tenga en cuenta que no podrá restaurar los mensajes eliminados manualmente o como resultado de la aplicación de la Filtración de validez de mensajes, por lo que estos pasos deben abordarse con especial atención.

 Explicaciones

La velocidad determinada por el rastreador y mostrada en el sistema de rastreo no siempre indica inequívocamente que la unidad se está moviendo. Esto se debe a la presencia de errores en los sistemas de navegación por satélite (GPS, GLONASS, etc.). Para determinar el hecho del movimiento, se utiliza la Velocidad mínima de movimiento, que define el umbral mínimo del valor de velocidad reconocido por el sistema como movimiento.

En casos raros, el error en el valor de la velocidad alcanza valores grandes, lo que puede estar relacionado tanto con la calidad del rastreador como con el entorno (relieve, ubicación en un edificio, presencia de grandes estructuras metálicas cercanas, etc.). Algunos rastreadores pueden marcar automáticamente los mensajes con velocidad inexacta como no válidos. Sin embargo, mediante la Filtración de validez de mensajes, puede encontrar y filtrar tales mensajes no válidos ya en Wialon. Este filtrado se aplica solo a los mensajes que llegarán al servidor después de habilitar la configuración correspondiente, por lo que los mensajes no válidos antiguos deberán eliminarse manualmente.

5. La descarga está marcada como falsa y luego oculta

Active la opción Mostrar eventos falsos en los ajustes de la plantilla de informe. Luego, ejecute el informe nuevamente y desmarque la indicación de que la descarga es falsa.

 Explicaciones

En los informes, existe la posibilidad de marcar las descargas como falsas. Esto se hace en caso de que la configuración actual del sensor del nivel de combustible se considere óptima para la unidad, pero el sistema sigue mostrando descargas incorrectas según los mensajes entrantes.

Las descargas marcadas como falsas se muestran en el informe solo cuando se activa la opción correspondiente.

Ninguna de las opciones es adecuada

Probablemente se ha encontrado con una situación más compleja que las consideradas anteriormente, y debería contactar al soporte técnico a través del correo support@wialon.com. Asegúrese de incluir en su correo el nombre exacto de la unidad, el nombre de la plantilla de informe para verificación, el intervalo de tiempo mínimo para verificación (por ejemplo, no un mes, sino varios días), así como otros detalles importantes.

Oleg Zharkovsky,Customer Service Engineer

Cómo eliminar las falsas descargas de combustible
  • technical_consulting
  • fuel
  • fuel_thefts

Si los datos recibidos del rastreador cumplen con todos los criterios de detección de descargas, aparecerán registros en la tabla Descargas de combustible, incluso si en realidad no hubo descarga. Estas descargas se denominan falsas.

Para configurar correctamente la detección de descargas, es necesario conocer no solo las características técnicas de los algoritmos de Wialon, sino también los principios de funcionamiento del equipo mismo (rastreadores, sensores y sistema de combustible de la unidad). Este artículo proporciona instrucciones simples que le permitirán eliminar las falsas descargas, basándose únicamente en la gráfica del nivel de combustible.

Existe la posibilidad de marcar las descargas como falsas y luego ocultarlas del resultado del informe (la opción Mostrar eventos falsos en los ajustes de la plantilla de informe debe estar desactivada). Este enfoque se aplica cuando la configuración actual del sensor del nivel de combustible se considera óptima para la unidad, pero a veces el sistema aún muestra descargas incorrectas basadas en los mensajes entrantes.

El marcado de cada descarga como falsa se realiza manualmente, y este artículo se centra principalmente en cambiar las propiedades del sensor, lo que permite ocultar automáticamente todas las falsas descargas.

Pasos obligatorios antes de aplicar las instrucciones

  • Se ha creado una unidad en Wialon, los mensajes de datos del rastreador se muestran en el sistema.
  • El sensor del nivel de combustible está conectado al rastreador, se ha realizado la calibración del tanque.
  • Se ha creado un sensor del tipo Sensor del nivel de combustible (SNC) en la unidad.
  • En las propiedades del SNC, se ha activado la opción Calcular datos según el sensor.
  • La tabla de calibración (Pares XY) se ha introducido en la Tabla de cálculo del sensor del nivel de combustible, después de lo cual se ha presionado el botón Generar.
  • Se ha creado una plantilla de informe con una gráfica de tipo Regular que muestra el Nivel de combustible procesado.
  • La gráfica también muestra marcadores de descargas y el fondo de viajes (por defecto es rosa), paradas (azul) y horas de motor (amarillo).

Comportamiento de la gráfica en el área de falsa descarga

Elija una de las opciones presentadas a continuación de acuerdo con lo que observa en la gráfica en el lugar donde se encuentra el marcador de descarga.

1. Fluctuaciones durante el movimiento o funcionamiento del motor

Durante el funcionamiento del motor, el movimiento sobre superficies irregulares o cualquier movimiento en general, se producen fluctuaciones de combustible que el SNC lee. Dependiendo del volumen y forma del tanque, así como de la ubicación de instalación del SNC, estas fluctuaciones pueden alcanzar decenas de litros, lo que puede llevar a la detección de descargas. En general, se pueden compensar utilizando un algoritmo de suavizado.

Para esto, en las propiedades del sensor del nivel de combustible, seleccione el tipo de filtración Filtración de mediana adaptable, en cuyo caso el algoritmo selecciona automáticamente el valor necesario del nivel de filtración.

O bien, en el mismo lugar, puede seleccionar el tipo de filtración Filtración de mediana para ajustar manualmente el suavizado. Para esto, establezca el nivel de filtración (por ejemplo, 3). Tenga en cuenta que los altos grados de filtración solo deben aplicarse con una alta frecuencia de envío de mensajes (1-5 segundos entre mensajes). Después de aplicar la filtración, los algoritmos de combustible trabajarán no con los datos originales, sino con los suavizados.

Para verificar la efectividad del suavizado, agregue a la gráfica la línea Nivel de combustible (antes del suavizado) y compárela con la línea Nivel de combustible procesado (después del suavizado). Si las fluctuaciones de la línea Nivel de combustible procesado aún le parecen significativas, puede intentar aumentar el nivel de filtración (se recomienda hacerlo con un paso de 1). Sin embargo, recuerde que el suavizado puede comenzar a distorsionar los datos de entrada, por lo que es necesario encontrar un punto medio: las fluctuaciones de la línea Nivel de combustible procesado ya no parecen grandes (o no existen en absoluto), pero las líneas antes y después del suavizado aún no difieren demasiado en lugares característicos (por ejemplo, durante llenados/descargas reales).

 Cómo funciona la filtración (suavizado de valores del sensor)

En Wialon se utiliza la filtración de mediana. Para cada mensaje, se toman varios mensajes antes y después, todos juntos forman una ventana de filtro, y luego, teniendo en cuenta estos mensajes, se calcula el valor suavizado en el centro de la ventana.

Nivel de filtraciónAncho de ventanaNúmero de mensajes antes/después del centro de la ventana
031


N

N — impar5×N(5×N-1)/2
N — par5×N-1(5×N-2)/2

Ejemplo

El nivel de filtración se establece en 3. Entonces el ancho de la ventana será 5×3=15. Por lo tanto, para suavizar los valores del nivel de combustible, se toman 7 mensajes antes y 7 mensajes después del mensaje considerado.

Por ejemplo, para calcular el valor en el mensaje número 61, se utilizarán los mensajes del 54 al 68.

2. Salto brusco inmediatamente después del inicio o cese del movimiento

Las lecturas del SNC pueden cambiar bruscamente en el momento del inicio/cese del movimiento, lo que puede llevar a la detección de una descarga. Si el nivel de filtración que ha elegido no suaviza estos saltos, y no desea aumentarlo (por ejemplo, en su caso, esto lleva a una gran distorsión de los datos de entrada en otros intervalos), puede utilizar uno de los dos filtros temporales en las propiedades del sensor del nivel de combustible:

  • Ignorar mensajes al comenzar el movimiento — esta opción permite excluir del análisis de descargas un número especificado de segundos después del inicio del movimiento.
  • Tiempo sin movimiento mínimo para detectar una descarga de combustible — si la duración del intervalo sin movimiento no excede la especificada, este intervalo no se analizará para descargas (de esta manera se pueden cortar las fluctuaciones del nivel de combustible, por ejemplo, durante paradas cortas en semáforos).

3. Caída suave durante el funcionamiento del motor y ausencia de movimiento

En el sistema Wialon existen 2 algoritmos para el análisis de combustible: el algoritmo por kilometraje (se usa por defecto) y el algoritmo por tiempo. Para unidades estacionarias y para unidades con largos intervalos de ralentí, se recomienda utilizar el algoritmo por tiempo. Para esto, active 3 opciones en las propiedades del sensor del nivel de combustible: Calcular llenados según el tiempo, Calcular descargas según el tiempo y Calcular el consumo de combustible según el tiempo. Vale la pena explicar que en el caso considerado se podría haber utilizado solo la opción Calcular descargas según el tiempo, pero la activación simultánea de todas las opciones permitirá lograr una mejor convergencia de todos los indicadores de combustible en los informes.

Al utilizar el algoritmo por tiempo, se compara el consumo según el SNC con el consumo por cálculo, es decir, con el valor calculado según el modelo matemático. En los intervalos de ralentí, el consumo por cálculo generalmente se determina por el sensor de ignición o los sensores de horas de motor. Por lo tanto, abra las propiedades del sensor de ignición o de horas de motor y verifique si la norma correcta de consumo por hora está establecida en el campo Consumo.

4. Descarga durante el movimiento, aunque la gráfica se ve normal

Lo más probable es que esté utilizando el algoritmo de análisis de combustible por tiempo, y también haya activado la opción Detectar descargas de combustible en movimiento en las propiedades del sensor del nivel de combustible. En tal caso, se compara el consumo según el SNC con el consumo calculado matemáticamente. Si el consumo por cálculo está configurado incorrectamente, se puede detectar una falsa descarga donde la unidad simplemente estaba realizando un viaje, por lo que se recomienda verificar el modelo matemático de consumo por cálculo. Se configura a través de:

  • sensores de ignición o sensores de horas de motor — en sus propiedades, en el campo Consumo, es necesario especificar la norma de consumo por hora en ralentí;
  • sensores de eficiencia del motor (SEM) — este sensor puede utilizar cualquier parámetro que afecte el consumo, y su valor determina el coeficiente de cambio de consumo, que luego se multiplica por el consumo del punto anterior.

Se puede crear un modelo matemático básico de consumo utilizando el Asistente para consumo por cálculo en la pestaña Sensores en las propiedades de la unidad. Este modelo tiene en cuenta la influencia de la velocidad y la temporada en el consumo de combustible utilizando sensores de eficiencia del motor. Luego, el modelo matemático se puede complementar con otros sensores de eficiencia del motor que tendrán en cuenta otros factores que influyen en el consumo (peso de la carga, temperatura, funcionamiento de equipos auxiliares, etc.).

5. Saltos significativos al mínimo/máximo

Si en la gráfica se observan saltos de la línea Nivel de combustible procesado a 0 o al valor máximo (a menudo es 2¹⁶-1=65535) y de vuelta al valor actual, incluso después de aplicar el suavizado, estos saltos pueden llevar a la detección de falsas descargas. Tales saltos en las lecturas pueden estar relacionados con una configuración incorrecta o una conexión inadecuada del sensor del nivel de combustible al rastreador.

Se recomienda corregir este problema desde el lado del hardware, sin embargo, desde el lado de Wialon también puede intentar eliminar estas lecturas utilizando la Tabla de cálculo. Para ello, entre en las propiedades del SNC, vaya a la pestaña Tabla de cálculo y establezca los valores del Límite inferior y/o Límite superior correspondientes al tanque vacío y lleno. Sin embargo, en el límite inferior es mejor no escribir 0, sino un valor cercano a cero (por ejemplo, 0.1) para eliminar los falsos saltos de lecturas a 0.

6. Saltos significativos no al mínimo/máximo

Si las lecturas del SNC cambian en cantidades significativas (pero no a 0 o al valor máximo) y luego vuelven al valor actual, incluso después de aplicar el suavizado, estos saltos pueden llevar a la detección de falsas descargas. Este comportamiento puede estar relacionado con saltos de voltaje, que se pueden notar en el gráfica usando la línea Voltaje, si tiene creado un Sensor de voltaje.

Se recomienda corregir tales situaciones desde el lado del hardware, sin embargo, desde el lado de Wialon puede intentar compensar esta influencia a través de la Validación. Para ello, es necesario aplicar las siguientes instrucciones:

  1. Abra la pestaña Mensajes y solicite mensajes con datos sin procesar para el intervalo que incluye el salto de nivel de combustible investigado.
  2. Manualmente o usando un filtro, encuentre otro parámetro que cambie simultáneamente con las lecturas del SNC. Supongamos que es el parámetro pwr_ext, que para la mayoría de los rastreadores corresponde al voltaje externo.
  3. Determine en qué valor del parámetro encontrado cambian las lecturas del SNC. Supongamos que si pwr_ext es menor que 12, el SNC comienza a enviar lecturas incorrectas.
  4. Entre en las propiedades de la unidad y cree un sensor del tipo Sensor digital personalizado, usando el parámetro del punto 3, y luego establezca para él una Tabla de cálculo con las siguientes líneas:
    X = 0; a = 0; b = 0
    X = 12; a = 0; b = 1
  5. Guarde el sensor creado y los cambios en las propiedades de la unidad, presionando dos veces el botón OK.
  6. Vuelva a entrar en las propiedades de la unidad y luego en las propiedades del SNC. Especifique el sensor del punto 4 como validador con el tipo Comprobar no nulos.

En el ejemplo anterior se considera un caso real, ya que el bajo voltaje a menudo lleva a la distorsión de las lecturas de varios sensores. Es decir, existe una conexión directa entre los parámetros de voltaje y nivel de combustible transmitidos. Sin embargo, también puede usar una conexión indirecta si nota un cambio simultáneo en las lecturas del SNC y cualquier otro parámetro. Es posible que el rastreador no envíe el valor de voltaje, pero envíe el valor de temperatura, y el sensor de temperatura también falle y envíe, por ejemplo, 451 °F en el momento del salto de voltaje. En tal caso, intente vincular el SNC y el valor de temperatura mediante la validación, lo que también debería corregir la situación.

7. Caída suave después del llenado de combustible en presencia de varios tanques conectados (cada tanque tiene un SNC)

Tal cambio en las lecturas del SNC puede estar relacionado con el hecho de que la unidad tiene varios tanques conectados entre los cuales ocurre un flujo de combustible. Después del llenado de combustible en uno de los tanques, la nivelación entre varios tanques puede llevar algún tiempo, y si creó sensores de nivel de combustible en Wialon por separado, inmediatamente después del llenado de combustible el sistema puede detectar una falsa descarga en uno de los tanques.

Al trabajar con varios tanques conectados, recomendamos crear un Sensor personalizado para cada SNC (por ejemplo, con los nombres "SNC 1" y "SNC 2") e introducir su propia tabla de calibración. Después de esto, cree un sensor separado del tipo Sensor del nivel de combustible, no introduzca una tabla de calibración en él, sino simplemente use la siguiente fórmula: [SNC 1]+[SNC 2]

8. Caída brusca al alcanzar cierto nivel

Esta situación puede observarse para tanques de forma específica en el momento de transición de la parte ancha a la estrecha (por ejemplo, para tanques en forma de "L"). Esto es especialmente probable si la calibración se realizó con muy pocos puntos, y a menudo se hace con solo 2 puntos (con el tanque vacío y lleno). Por lo tanto, tiene sentido recalibrar el tanque usando pequeñas porciones.

9. Cambio suave al mismo tiempo

A veces el nivel de combustible cae/aumenta en ciertos momentos, y en algunos casos incluso vuelve al valor actual más tarde. Esto puede ocurrir por la noche, o durante un viaje (especialmente bajo carga), o aproximadamente al mismo tiempo después de completar un viaje, es decir, es difícil identificar una regla general.

Causas probables:

  • cambio de temperatura que afecta el volumen de combustible, así como la deformación del tanque (esto es especialmente cierto para tanques de plástico flexibles);
  • formación de "vacío" debido a diferencias de presión (extracción activa de combustible al motor);
  • sedimentación de impurezas en el combustible o suciedad en el tanque que ocurre después de completar un viaje (vibración).

La solución en la mayoría de los casos está relacionada con el equipo: instalación de una tapa con válvula para igualar la presión, eliminación de suciedad/sedimentos en el tanque o en el SNC. Sin embargo, si la situación está relacionada solo con el cambio de temperatura, puede ayudarle el uso de un sensor del tipo Coeficiente de temperatura (un ejemplo de su configuración se puede encontrar en la documentación).

Ninguna de las opciones es adecuada

Este artículo solo trata sobre falsas descargas de combustible, por lo que si no pudo deshacerse de las descargas usando las instrucciones propuestas, esto puede significar una de tres opciones:

  1. La precisión del SNC no es suficiente para el tanque de esta forma, este tipo de vehículo, este carácter de movimiento del vehículo, para esta área, etc. Entonces solo puede ayudar aumentar la configuración de Volumen mínimo de descarga en las propiedades del sensor del nivel de combustible. En esencia, esto no es una corrección de la situación, sino simplemente un reconocimiento de la baja precisión del SNC y la configuración de la unidad de acuerdo con esta precisión.

  2. Se ha encontrado con una situación más compleja que la descrita anteriormente, y debería contactar al soporte técnico a través del correo support@wialon.com. Asegúrese de incluir en su correo una breve descripción de la situación con capturas de pantalla, el nombre exacto de la unidad, el nombre de la plantilla de informe para verificación, el intervalo de tiempo mínimo para verificación (por ejemplo, no un mes, sino un día), así como otros detalles importantes.

  3. Probablemente, la descarga de combustible realmente ocurrió.

Oleg Zharkovsky,Customer Service Engineer

Movimiento de combustible
  • technical_consulting
  • fuel
  • fuel_traffic
  • tables

El control de combustible es uno de los puntos fuertes de Wialon. El sistema permite desde hace tiempo calcular el consumo de combustible real y esperado para grupos y unidades individuales, así como rastrear llenados y descargas de combustible en tiempo real o durante un período pasado. Pero en Wialon existe otra herramienta importante para el control de combustible, que puede no ser conocida por todos, aunque ofrece una oportunidad única para contabilizar las entregas de combustible por camiones cisterna. Se trata de la tabla Movimiento de combustible, y es precisamente esta la que se analizará en este artículo.

Características de la tabla

La tabla Movimiento de combustible es inusual por varias razones. De hecho, combina tres tablas: Llenados de combustible y recargas de batería, Descargas de combustible y Sensores contadores. Y a pesar de que no está disponible para un grupo de unidades, al ejecutar un informe para un camión cisterna, puede mostrar datos de otras unidades que reciben combustible (consumidores).

Esta tabla se puede utilizar de diferentes maneras:

  1. Para un camión cisterna, para mostrar las entregas de combustible a las unidades consumidoras.
  2. Para cualquier unidad, para mostrar en una sola lista todos sus llenados y descargas de combustible.
  3. Combinar el primer y segundo método para ver tanto los llenados como las entregas del camión cisterna. 

Más adelante en el artículo, solo se considerará el primer método, ya que en comparación con el segundo, requiere configuraciones más no estándar. 

Sensores necesarios

Tipo de unidadTipo de sensorPosibilidades

Camión cisterna

Sensor del nivel de combustible (SNC)

Permite mostrar las entregas de combustible (en forma de descargas) y llenados (llenado del tanque de combustible).

Camión cisterna

Sensor contador

Permite mostrar el volumen de combustible entregado a través de la pistola de llenado-medidor de flujo.

El uso del contador da un resultado más preciso en comparación con el SNC.

Consumidor

SNC

Permite mostrar el volumen de llenado al recibir combustible del camión cisterna.

Camión cisterna

Asignación de conductor

Para mostrar el nombre del conductor en el camión cisterna, debe instalarse un lector de tarjetas. Se supone que el conductor de la unidad que se está llenando aplica su tarjeta al lector de tarjetas del camión cisterna para que comience la entrega, y durante este tiempo se le asigna al camión cisterna, y después de completar la entrega, el conductor debe ser removido de la unidad.

Lógica de funcionamiento de la tabla

Consideremos paso a paso la lógica de funcionamiento de la tabla Movimiento de combustible para el caso cuando se ejecuta para un camión cisterna.

Al ejecutar el informe para el intervalo seleccionado, la tabla busca actividades de combustible de diferentes tipos en el camión cisterna: llenado, descarga o funcionamiento del contador. La búsqueda se realiza exactamente de la misma manera que en las tablas homónimas Llenados de combustible y recargas de batería, Descargas de combustible y Sensores contadores. En la configuración de la tabla, puede filtrar los tipos de actividades de combustible para mostrar. La lógica de trabajo con los tres tipos de actividades es la misma. Para simplificar, asumiremos que en el ejemplo solo se consideran las entregas de combustible.

A continuación, el sistema busca consumidores potenciales, es decir, otras unidades que estaban cerca del camión cisterna durante sus actividades de combustible. La distancia a estas unidades se compara con el radio de aproximación, que se establece en los ajustes de la tabla Movimiento de combustible. Supongamos que se encuentran varias de estas unidades.

El siguiente paso es que el sistema inicia la búsqueda de llenados para las unidades encontradas cerca. La búsqueda se realiza exactamente de la misma manera que en la tabla homónima Llenados de combustible y recargas de batería.

Los llenados para los consumidores potenciales se calculan para todo el intervalo de construcción del informe, no solo para el tiempo en que estuvieron cerca del camión cisterna durante la entrega. Esto se explica por lo siguiente:

  • El SNC puede ser inercial, es decir, mostrar el cambio de nivel no inmediatamente, sino con cierto retraso.
  • Para compensar las inexactitudes del SNC en Wialon, se utiliza el suavizado por mensajes vecinos, por lo que para un cálculo correcto del llenado es necesario considerar los mensajes antes de su inicio y después de su finalización.

Si en la configuración de la tabla está activada la opción Solo considerar unidades con llenados, las unidades sin llenados serán excluidas del análisis y visualización posteriores. Y si esta opción está desactivada, el informe incluirá incluso aquellas unidades que simplemente estaban cerca del camión cisterna en el momento de las actividades de combustible, pero no tenían llenados. Supongamos que en el ejemplo considerado, la opción Solo considerar unidades con llenados está activada.

En este momento, el sistema ya ha calculado los intervalos de actividad del camión cisterna y los intervalos de llenados de las unidades consumidoras. Ahora es necesario vincularlos.

Al trabajar con llenados en Wialon, se utilizan varias marcas de tiempo:

  • Inicio del llenado — tiempo del primer mensaje del intervalo de llenado.
  • Fin del llenado — tiempo del último mensaje del intervalo de llenado.
  • Tiempo de llenado — tiempo del mensaje después del cual ocurrió el máximo aumento de combustible en el intervalo de llenado. Este es el valor que se muestra en la columna Tiempo en la tabla Llenados de combustible y recargas de batería.

Si el tiempo de llenado del consumidor potencial coincide con la actividad de combustible, el llenado y la actividad de combustible se consideran vinculados. Si no se produce tal coincidencia, el algoritmo busca intersecciones del intervalo de llenado con el intervalo de actividad de combustible. Si hay varias intersecciones, el llenado se asociará a la primera actividad de combustible en orden cronológico. Si el intervalo de llenado no se cruza con ninguna actividad de combustible, la unidad consumidora y su llenado no se mostrarán en el informe.

En el ejemplo mostrado en las imágenes, obtenemos:

  • En la fila con la actividad de combustible 1 se mostrará el llenado del consumidor 1. En este caso, el tiempo (máxima diferencia de nivel de combustible) del llenado del consumidor cae dentro del intervalo de entrega.
  • En la fila con la actividad de combustible 2 se mostrará el llenado del consumidor 2. El tiempo de este llenado no cae dentro de los intervalos de entrega, pero el llenado tiene intersecciones con varias entregas y se asociará a la primera cronológicamente.
  • En la fila con la actividad de combustible 3 no se mostrará ningún llenado. El intervalo de llenado del consumidor 3 no tiene intersecciones con ninguna entrega.
  • El consumidor potencial 4 no se mostrará en el informe. No se detectaron llenados para él, y según las condiciones del ejemplo, en la configuración de la tabla está activada la opción Solo considerar unidades con llenados.

Los nombres de los consumidores se mostrarán en la columna Geocercas/Unidades, en la columna Llenado se mostrará el volumen de llenado del consumidor, y en la columna Desviación — la diferencia entre el llenado y la entrega.

Ejemplo de configuración para el control de entregas de combustible

Consideremos un ejemplo de configuración de la tabla Movimiento de combustible para controlar las entregas por el camión cisterna. Por defecto, esta tabla muestra todos los tipos de actividades de combustible, por lo que primero es necesario ocultar las innecesarias y luego configurar las restantes.

Cabe señalar que la configuración puede variar dependiendo del equipo utilizado y su precisión, así como de las necesidades del cliente. Sin embargo, la mayoría de los pasos de las instrucciones a continuación serán los mismos para todos los usuarios.

  • Para ocultar los llenados del camión cisterna, en la filtración de intervalos expandimos el bloque Llenados, activamos el filtro Llenados de combustible y en el menú desplegable seleccionamos la opción Sin llenados.


  • Si el camión cisterna no tiene instalada una pistola de llenado-medidor de flujo, pero la unidad tiene otros contadores, estos pueden afectar el resultado mostrado. Para ocultar las lecturas de estos contadores, en el filtrado de intervalos expandimos el bloque Sensores, activamos el filtro Máscaras de sensores y especificamos un nombre que no corresponda a los nombres de los contadores.


  • Si el camión cisterna tiene instalada una pistola de llenado-medidor de flujo, se recomienda trabajar con los datos obtenidos de la pistola de llenado-medidor de flujo, no con las descargas detectadas por el SNC.
    Para ocultar las descargas del camión cisterna, en la filtración de intervalos expandimos el bloque Descargas, activamos el filtro Descargas de combustible y en el menú desplegable seleccionamos la opción Sin descargas



  • En esta etapa, dependiendo de los pasos anteriores, el informe mostrará solo las entregas de combustible registradas por el SNC o por el contador.
    En ambos casos, para mostrar las unidades consumidoras y sus llenados, es necesario marcar las unidades o grupos de unidades deseados en el filtro Geocercas/Unidades y especificar el radio de aproximación. Este filtro se repite en cada uno de los bloques (Llenados, Descargas, Sensores), por lo que debe configurarse en el bloque que planea utilizar.
    También se recomienda activar la opción Solo considerar unidades con llenados para ocultar del resultado del informe las unidades que simplemente estaban cerca pero no tenían llenados. 

    Si se encontraron varias unidades cerca, el informe mostrará el nombre de la unidad con el menor radio de aproximación. Si los radios coinciden, se mostrarán todas las unidades en el informe.

Solución de posibles problemas

A continuación, se examinarán los problemas frecuentes que surgen al trabajar con la tabla Movimiento de combustible y los métodos para resolverlos.

Los volúmenes de entrega o llenado no coinciden

Si los volúmenes no coinciden en la tabla Movimiento de combustible, debe realizar las mismas acciones que si hubiera resultados incorrectos en las tablas Llenados de combustible y recargas de batería, Descargas de combustible y Sensores contadores. Puede verificar:

  • La presencia de parámetros de sensores en los mensajes del camión cisterna y del consumidor.
  • La calibración de los tanques del camión cisterna y del consumidor.
  • El coeficiente del contador del camión cisterna (si está presente).
  • Ajustes avanzadas de los sensores de combustible del camión cisterna y del consumidor.

Es posible que le resulten útiles otros artículos sobre combustible de la sección Artículos de expertos.

El consumidor no se muestra o se muestra incorrectamente

Este problema puede estar relacionado con la imprecisión en la determinación de la ubicación del camión cisterna o de los consumidores.

Puede verificar las configuraciones de los rastreadores relacionadas con la determinación de la ubicación, o aumentar el radio de aproximación en la configuración de la tabla Movimiento de combustible.

Según la lógica de funcionamiento de la tabla, considerada anteriormente, el problema puede estar relacionado con cómo y cuándo se detecta la entrega del camión cisterna o el llenado del consumidor. Por lo tanto, puede seguir las recomendaciones del punto anterior sobre la discrepancia en los volúmenes de entrega o llenado.

La entrega se divide en varias partes

Si la entrega se determina por el contador, en el bloque Sensores en la configuración de la tabla Movimiento de combustible puede establecer una Condición de combinar intervalos. Por ejemplo, si establece el Tiempo de espera menos de 30 segundos, los intervalos de funcionamiento del contador entre los cuales pasaron menos de 30 segundos se unirán.

Si la entrega se determina por el SNC, puede aumentar el Tiempo de espera para separar descargas consecutivas en las propiedades del SNC.

Las entregas no se separan

Una posible causa de este problema es la baja frecuencia de envío de datos, lo que no permite obtener suficientes mensajes del rastreador entre entregas.

También puede aplicar las recomendaciones del punto anterior, pero al revés: disminuir el Tiempo de espera en la condición de combinar intervalos o disminuir el Tiempo de espera para separar descargas consecutivas en las propiedades del SNC.

Muchas pequeñas entregas innecesarias

Es posible que la pistola de llenado-medidor de flujo a través de la cual se realiza la entrega de combustible tenga fugas, es decir, el combustible gotea a través de ella incluso en estado cerrado.

Lo más correcto sería reparar el equipo, sin embargo, desde el lado de Wialon puede establecer un mínimo Rango de valores del sensor contador en los ajustes de la tabla Movimiento de combustible, lo que permitirá ignorar pequeñas entregas.

Los conductores no se muestran correctamente

Los conductores pueden no mostrarse en el informe, o puede mostrarse un solo conductor en todas las filas.

No hay una instrucción única para corregir este problema, ya que el proceso de trabajo con conductores depende del equipo utilizado.

Intente estudiar la lógica de asignación y separación automática de conductores. Es posible que necesite verificar:

  • La presencia de parámetros del sensor de asignación de conductor en los mensajes del camión cisterna.
  • La configuración del sensor de asignación de conductor, incluido el código de eliminación.
  • Las propiedades de los conductores, específicamente sus códigos.
  • La configuración de la lista de asignación automática.

Ninguna de las opciones es adecuada

Probablemente se ha encontrado con una situación más compleja que las consideradas anteriormente, y debería contactar al soporte técnico a través del correo support@wialon.com. Asegúrese de incluir en su correo el nombre exacto de la unidad, el nombre de la plantilla de informe para verificación, el intervalo de tiempo mínimo para verificación (por ejemplo, no un mes, sino varios días), así como otros detalles importantes.

Oleg Zharkovsky,Customer Service Engineer

El comando no funciona
  • technical_consulting
  • commands
  • sms

Wialon no solo recibe datos de los rastreadores, sino que también puede enviarles comandos. En este artículo encontrará las condiciones para ejecutar comandos, una descripción de las características de los diferentes canales de envío de comandos, así como posibles problemas y sus soluciones.

Condiciones para ejecutar comandos

Para ejecutar comandos, es necesario considerar varias condiciones que conciernen al servicio, la cuenta, el usuario y la unidad. Consideremos estas condiciones en orden.

  1. El servicio Comandos está habilitado en la cuenta.

  2. El usuario tiene el derecho especial de Enviar comandos con respecto a la unidad.

  3. El comando está creado en la pestaña Comandos en las propiedades de la unidad.

    Para crear comandos, el usuario debe tener el derecho especial de Crear, modificar y eliminar comandos con respecto a la unidad.

  4. Para ejecutar comandos a través del canal SMS, existen algunas condiciones adicionales:

    • El servicio de Mensajes SMS está habilitado en la cuenta.

    • Los SMS deben estar disponibles en el servicio, es decir, el contador en la barra superior debe ser mayor que cero.

      Este contador no se muestra si se utiliza un módem personal para enviar SMS en el servicio.

    • En la pestaña Básicas de las propiedades de la unidad, debe especificarse el Número de teléfono en formato internacional al que el rastreador recibirá los SMS.

Características de los canales de envío de comandos

El canal (tipo de conexión) para enviar el comando se selecciona en sus propiedades. Dependiendo del canal seleccionado, al ejecutar el comando es necesario considerar el estado de la conexión de la unidad con el servidor.

La unidad mantiene una conexión a Internet con el servidor si envía mensajes con datos o paquetes keep alive/heart beat. Para verificar el estado actual de la conexión, puede usar la columna Estado de conexión en el panel Seguimiento.

Canal

Características

GPRS (TCP/UDP)

La unidad debe mantener obligatoriamente una conexión a Internet con el servidor.

Virtual

Este canal es similar en principio de envío al TCP/UDP, pero el comando virtual puede ejecutarse incluso cuando la unidad no está conectada al servidor. En el momento de la ejecución, el comando se pone en cola, y su envío real se realizará cuando la unidad se conecte. 

Para cada tipo de dispositivo en Wialon, hay un límite en el número de comandos virtuales en cola, y cuando la cola se llena, un nuevo comando virtual desplazará al comando más antiguo de la cola (no se enviará).

SMSLa unidad puede no mantener una conexión a Internet con el servidor.
AutomáticoAl enviar, el programa seleccionará automáticamente el canal que esté disponible en ese momento. Si hay varios tipos disponibles, se utilizará el canal que esté más arriba en esta tabla.
Si el canal de comunicación seleccionado para los comandos está disponible en ese momento, el botón de ejecución del comando junto a la unidad en el panel Seguimiento se activará.

Verificación del envío del comando desde Wialon

El hecho de la ejecución del comando se registra en el Historial de la unidad. Esta información también está disponible para su visualización:

  • En la pestaña Mensajes al solicitar Comandos enviados;
  • En la pestaña Mensajes al solicitar Mensajes SMS;
  • En el informe con la tabla Comandos enviados.

Un registro de la ejecución del comando en el registro significa que el comando fue ejecutado desde el lado de Wialon. Luego se envía a través del canal TCP/UDP o se transmite al módem/puerta de enlace SMPP para su envío.

Si el comando no se ejecutó al presionar el botón correspondiente, debe verificar el cumplimiento de los requisitos mencionados anteriormente. Si se cumplieron todos los requisitos y la unidad no perdió la conexión en el momento de la ejecución del comando, puede enviar una descripción detallada del problema (nombre de usuario, unidad, nombre del comando y tiempo de ejecución) a support@wialon.com para que los especialistas de soporte técnico de Wialon lo analicen.

Posibles problemas y métodos de solución

Si según el registro de Wialon el comando se ejecutó, pero no hay reacción del rastreador, es muy probable que el problema esté relacionado con el funcionamiento de sistemas de terceros. Es posible que el rastreador no haya recibido el comando, que no haya ejecutado las acciones programadas por el comando o que no haya enviado una respuesta/archivo al comando a Wialon. Los problemas más comunes de este tipo y las posibles acciones para corregirlos se enumeran a continuación.

ProblemaPosibles causasOpciones de acción
El comando SMS no se entregó a la unidad

Los problemas con la entrega de mensajes SMS y comandos TCP/UDP generalmente están relacionados con problemas a nivel de redes de operadores de telecomunicaciones/proveedores de Internet. Se debe verificar la ruta de entrega del mensaje junto con el proveedor, resolver problemas de red o buscar otras rutas de entrega. 

Si utiliza el paquete de 500 SMS, escriba al soporte técnico de Wialon en support@wialon.com.
Si utiliza su propia puerta de enlace SMPP o módem, comuníquese con su proveedor SMPP u operador GSM para analizar la situación.

El comando se entregó, pero con texto incorrecto

Generalmente, este problema está relacionado con la codificación del operador de telecomunicaciones y es relevante principalmente para los mensajes SMS. Wialon utiliza la codificación estándar A5 (CCITT T.50)/ASCII (ANSI X3.4). El operador de telecomunicaciones del destinatario puede usar un protocolo diferente y, como resultado, decodificar incorrectamente el mensaje.

El usuario debe contactar al operador de telecomunicaciones del destinatario para corregir la situación.

Una alternativa es usar su propia puerta de enlace SMPP con la codificación requerida.
El comando se entregó con texto correcto, pero el rastreador no ejecutó/rechazó el comando

El formato del comando en el SMS es incorrecto. Es necesario verificar la sintaxis según el manual del dispositivo o contactar al fabricante del equipo. 

Si se utilizan comandos estándar de Wialon (excepto Enviar mensaje personalizado), asegúrese de que se hayan transmitido los parámetros correctos en el comando (por ejemplo, el número de entrada del rastreador para la activación). También puede contactar al soporte técnico de Wialon en support@wialon.com, proporcionando una descripción detallada del problema.

El comando SMS se recibió de un número de remitente que no está en la lista de permitidos. 

Agregue el número permitido en la configuración del rastreador.

El comando se recibió desde una IP no permitida para el rastreador.

Agregue la IP permitida en la configuración del rastreador. La IP en Wialon Hosting depende del centro de datos del servicio y se puede ver en la pestaña Básicas en las propiedades de cualquier unidad.

No se ha introducido la Contraseña para ejecutar comandos en la configuración de la unidad (o no coincide con la contraseña en el rastreador).

Verifique la contraseña para ejecutar comandos. Se recomienda usar caracteres latinos para la contraseña, ya que otros idiomas pueden ser decodificados incorrectamente por el rastreador.

El rastreador no funciona correctamente.

Un fallo de hardware o software a nivel del rastreador debe ser analizado con el ingeniero que da servicio a dicho rastreador.

El comando se entregó y fue ejecutado por el rastreador, pero no se recibió respuesta en el sistema Wialon

Para algunos tipos de dispositivos, existe una configuración adicional del protocolo del equipo, donde se debe activar la bandera correspondiente o introducir ajustes para la recepción y visualización de mensajes del rastreador.

Encuentre y active la opción correspondiente al configurar el dispositivo en la pestaña Básicas. El botón de configuración se encuentra a la derecha del campo de entrada del tipo de dispositivo y está activo si el dispositivo mismo prevé la posibilidad de configuración.

El comando se recibió desde un número virtual que no puede actuar como destinatario de SMS.

En Wialon Hosting se utiliza el número virtual 79037676122. Puede contactar al soporte técnico de Wialon en support@wialon.com y aclarar la posibilidad de cambiar su servicio a otro número de teléfono de remitente disponible para recibir respuestas SMS de los rastreadores en este número.
Si debido a las peculiaridades de las rutas de entrega de SMS en un país determinado no puede establecer otro número de remitente para enviar SMS, la solución más conveniente será conectar su propia puerta de enlace SMPP para su servicio de Hosting con la capacidad de recibir SMS de los rastreadores. Para conectar su propia puerta de enlace SMPP al servicio de Hosting, contacte a su gerente (o al soporte técnico de Wialon para consultas técnicas).

Sergey Novikov,Customer Service Engineer

Notificaciones en Telegram
  • technical_consulting
  • notifications_to_telegram

La capacidad de enviar información por diferentes canales es una gran ventaja. Las opciones estándar tienen sus desventajas: un correo electrónico enviado puede perderse en el spam, y los SMS son de pago y no siempre llegan al destinatario. En estas condiciones, el mensajero Telegram puede convertirse en una alternativa conveniente.

Telegram es un servicio de terceros para Wialon. En Internet, puede encontrar libremente instrucciones sobre la configuración necesaria. Sin embargo, para simplificar el trabajo de los socios, hemos recopilado en un solo artículo los pasos clave que se necesitarán para enviar notificaciones a Telegram desde Wialon para grupos abiertos y cerrados, canales, envíos individuales y masivos.

Parte de la información (tokens e ID) en las instrucciones estará oculta, ya que es información privada. Esto no afecta la comprensión de las instrucciones.

Requisitos previos

Es necesario crear un bot siguiendo las instrucciones. De aquí en adelante, asumiremos que Telegram está instalado en su computadora o teléfono. El trabajo de configuración se puede realizar en ambas versiones, sin embargo, es más fácil hacerlo en la computadora, ya que tendrá que copiar información en la configuración de notificaciones en Wialon.

Categorías de notificaciones

Condicionalmente, las notificaciones se pueden dividir en dos categorías:

  • individuales — para un usuario específico (por ejemplo, un cliente con un automóvil personal);
  • masivas — para varios usuarios a la vez (por ejemplo, un grupo, equipo, departamento, empresa).

La configuración para las notificaciones de Telegram en Wialon es una: es necesario establecer el Token de bot y el ID del canal:

Generalmente, las preguntas surgen con el ID del canal. Precisamente de cómo complete este campo dependerá si la notificación será individual o masiva.

Notificaciones individuales

Abrimos el siguiente enlace en la computadora o en el teléfono con Telegram instalado: https://telegram.me/userinfobot

Enviamos el comando para comenzar a trabajar y en respuesta recibimos nuestro propio ID:

Este ID propio es el que establecemos en la configuración de la notificación:

Cuando se active tal notificación, el mensaje llegará al chat del bot, y solo usted lo verá:

Lo que también es notable de este método es la posibilidad de usar un token para diferentes ID de usuarios. Es decir, usamos un bot para múltiples notificaciones individuales, y cada cliente recibe solo su notificación.

Para conocer el ID de otro usuario, simplemente reenvíele un mensaje de ese usuario (por ejemplo, de su conversación con dicho usuario):

Notificaciones masivas

Canal público

Con el envío masivo a varios usuarios a la vez, todo es más simple. Es suficiente crear un canal público de Telegram, agregar allí el bot y permitirle gestionar las notificaciones.

Como ID del canal para configurar la notificación en Wialon, es necesario usar el ID del canal:

Tomamos solo "pach_test" (sin los símbolos "t.me/"), ponemos el prefijo "@" y lo agregamos a la notificación en Wialon:

Agregamos a este canal cualquier contacto necesario (todos recibirán notificaciones de manera centralizada). Esperamos la activación, el resultado está abajo:

Canal privado

Creamos un canal público, agregamos allí el bot como administrador. Enviamos una solicitud en nombre del bot a este canal, insertando el siguiente enlace en la barra de direcciones del navegador y presionando Enter:

https://api.telegram.org/bot/sendMessage?chat_id=@yourchannelname&text=ping

 Reemplazamos el token con el token de nuestro bot:

Especificamos el ID de nuestro canal:

Lo insertamos en la barra de direcciones del navegador y presionamos Enter, por ejemplo:

https://api.telegram.org/bot775ххххххх:AAH5Kp_cххххххххххххххххх/sendMessage?chat_id=@gurtamstudy&text=ping

En respuesta recibimos:

{"ok":true,"result":{"message_id":17,"chat":{"id":-1001xxxxxxxxx,"title":"Study","username":"gurtamstudy","type":"channel"},"date":1593066856,"text":"ping"}}

Eliminamos el mensaje, hacemos el canal cerrado. En lugar de @yourchannelname en la configuración de la notificación, usamos el valor "id": -1001xxxxxxxxx

Grupo privado

El envío a un grupo puede ser útil, ya que en él existe la posibilidad de discutir la notificación. Realizamos la configuración de manera similar a la configuración con el canal cerrado.

Creamos un grupo abierto, agregamos allí el bot (puede ser sin derechos de administrador). Enviamos una solicitud en nombre del bot a este grupo, insertando el siguiente enlace en la barra de direcciones del navegador y presionando Enter:

https://api.telegram.org/bot/sendMessage?chat_id=@yourgroupname&text=ping

Reemplazamos el token con el token de nuestro bot:

Especificamos el ID de nuestro grupo:

Lo insertamos en la barra de direcciones del navegador y presionamos Enter, por ejemplo:

https://api.telegram.org/bot775ххххххх:AAH5Kp_cххххххххххххххххх/sendMessage?chat_id=@gurtam_study&text=ping

En respuesta recibimos:

{"ok":true,"result":{"message_id":2,"from":{"id":775ххххххх,"is_bot":true,"first_name":"pach_test","username":"pach_bot"},"chat":{"id":-1001xxxxxxxxx,"title":"Study group","username":"gurtam_study","type":"supergroup"},"date":1593070025,"text":"ping"}}

Eliminamos el mensaje, hacemos el grupo cerrado. En lugar de @yourgroupname en la configuración de la notificación, usamos el valor "id": -1001xxxxxxxxx

Pavel Chebotarev,Customer Service Engineer

Tacógrafos y Wialon
  • technical_consulting

El tacógrafo es un dispositivo que controla el régimen de trabajo y descanso (RTD) de los conductores, así como la velocidad del vehículo, la distancia recorrida y el país de ubicación. El uso de este dispositivo permite minimizar el riesgo de situaciones de emergencia debido a la fatiga del conductor y optimizar el funcionamiento de la flota. La necesidad de instalar un tacógrafo está determinada por la ley.

En este artículo se abordarán cuestiones generales relacionadas con la tacografía, así como las opciones de cálculo y visualización del RTD implementadas en Wialon.

Aspecto legal

En resumen, el tacógrafo es un dispositivo obligatorio para vehículos que realizan transporte de carga y pasajeros. Sin embargo, diferentes países tienen diferentes reglas sobre la necesidad de instalar tacógrafos y controlar el RTD.

En Wialon solo se admite el "Acuerdo Europeo sobre el trabajo de las tripulaciones de los vehículos que efectúan transportes internacionales por carretera", o AETR por sus siglas en francés (Accord Européen sur les Transports Routiers). Este es un acuerdo único sobre el trabajo de las tripulaciones de vehículos en el territorio de los países europeos.

 Reglas de otros países

Las siguientes reglas no están admitidas en Wialon, pero puede ser útil conocerlas:

  • En los Estados Unidos, la función de los tacógrafos la realizan los dispositivos de registro electrónico (electronic logging devices, ELD), y las reglas que determinan el régimen de trabajo y descanso de los conductores se llaman Hours of Service (HOS). Para contabilizar HOS basado en Wialon, se creó la solución Apollo ELD, que se puede conocer en el siguiente sitio web: eld.wialon.com
  • En Australia, la ley sobre tacografía se llama Heavy Vehicle National Law and Regulations (NHVL).
  • En la Federación Rusa, las reglas para el uso de tacógrafos están determinadas por órdenes del Ministerio de Transporte de la Federación Rusa (en particular, por la orden del 13 de febrero de 2013 No. 36 de Moscú).

Cada tacógrafo está configurado para controlar las reglas de un país/región específico. Las lecturas del tacógrafo digital son datos legalmente reconocidos en procedimientos judiciales o controles de transporte en carreteras, y el documento emitido por el tacógrafo digital es la base para la imposición de sanciones por parte de las autoridades policiales, porque este documento se genera automáticamente, está protegido contra falsificaciones y se reconoce como objetivo.

La información tacográfica mostrada en Wialon no tiene validez legal, a pesar de que puede estar basada en datos obtenidos del tacógrafo.

Modos de operación

En lugar de designaciones textuales, los tacógrafos utilizan símbolos estándar (pictogramas) para que cualquier persona, incluso sin conocimiento del idioma, pueda entender las lecturas del tacógrafo. Los pictogramas principales indican modos, es decir, diferentes actividades de los conductores:

PictogramaNombreNombres alternativosDescripción

Conducción

Control, "volante", "timón"

Se utiliza para registrar la duración del control directo del vehículo.

Se activa automáticamente cuando la tarjeta del conductor se inserta en la primera ranura, el motor está encendido y la velocidad del vehículo no es cero.

Trabajo

Otro trabajo, otros trabajos, "martillos"

Se utiliza para registrar el trabajo que no es conducción (documentación, carga y descarga, etc.).

Se activa manual o automáticamente cuando la tarjeta del conductor se inserta en la primera ranura, el motor está encendido y la velocidad del vehículo es cero.

Descanso

Pausa, "cama", "silla"

Se utiliza para registrar el descanso.

Se activa manual o automáticamente cuando se apaga el encendido.

Reserva

Disponibilidad, preparación, espera, "sobre"

Se utiliza cuando hay un segundo conductor en la tripulación del vehículo.

Se activa automáticamente cuando la tarjeta del conductor se inserta en la segunda ranura y para el primer conductor se muestra el modo "Conducción" o "Trabajo".

El uso de los modos puede diferir de la descripción anterior (por ejemplo, dependiendo de los requisitos durante la carga o de las recomendaciones de la empresa de transporte). Y la lógica de cambio automático/manual de modos puede depender del modelo del tacógrafo.

Otros pictogramas no se utilizan en Wialon, por lo que no se mencionan en este artículo. Sin embargo, para el conductor, su conocimiento es obligatorio para interactuar correctamente con el dispositivo.

Ejemplos de reglas de RTD

Para tener una idea de qué criterios utiliza el tacógrafo al controlar el RTD, se pueden considerar algunas de las reglas del AETR:

  • Se puede conducir un máximo de 4,5 horas sin parar para descansar. Después de esto, se debe hacer una pausa de 45 minutos.

     Ejemplos

    Ejemplo 1. El conductor condujo durante 4,5 horas y luego hizo una pausa de 45 minutos. En este caso, no hay infracciones.

    Ejemplo 2. El conductor condujo durante 4,5 horas y luego hizo una pausa de 30 minutos. Esto es una infracción, ya que la duración de la pausa es insuficiente.

  • Si dentro de las 4,5 horas de conducción se hace una pausa de más de 15 minutos pero menos de 45 minutos, al final del período de conducción de 4,5 horas se puede hacer una pausa de una duración que, sumada a la pausa anterior, sume 45 minutos. Si la pausa dura menos de 15 minutos, no se contabilizará.

     Ejemplos

    Ejemplo 1. El conductor condujo durante 2 horas, hizo una pausa de 20 minutos, luego condujo otras 2,5 horas e hizo una pausa de 25 minutos. En este caso, no hay infracciones, ya que para el período de conducción de 4,5 horas se acumularon 45 minutos de descanso en total.

    Ejemplo 2. El conductor condujo durante 2 horas, hizo una pausa de 10 minutos, luego condujo otras 2,5 horas e hizo una pausa de 35 minutos. Esto es una infracción, ya que la primera pausa duró menos de 15 minutos y por lo tanto no se contabilizó. Como resultado, para el período de conducción de 4,5 horas no se acumularon 45 minutos de descanso en total.

  • El tiempo máximo de conducción durante una semana laboral es de 56 horas, y durante dos semanas consecutivas es de 90 horas.

     Ejemplos

    Ejemplo 1. El tiempo de conducción en la primera semana fue de 50 horas, en la segunda de 40 horas, y en la tercera nuevamente de 50 horas. En este caso no hay infracciones, ya que en cada semana individual no se superó el límite de 56 horas, y en total para cada dos semanas consecutivas se respetó el límite de 90 horas.

    Ejemplo 2. El tiempo de conducción en la primera semana fue de 50 horas, en la segunda de 50 horas, y en la tercera de 40 horas. En este caso hay una infracción: a pesar de que en cada semana individual no se superó el límite de 56 horas, en total para la primera y segunda semana se superó el límite de 90 horas.

En el control del RTD se utilizan bastantes reglas similares con condiciones complicadas, y casi todas se centran en la duración de la conducción continua, los descansos periódicos y el descanso diario/semanal o sus combinaciones. El control de las reglas lo realiza el tacógrafo automáticamente, sin embargo, para el conductor su conocimiento es obligatorio para planificar correctamente su ruta y no infringir el RTD.

Estructura de los tacógrafos

Generalmente, los tacógrafos se dividen en analógicos y digitales.

Los analógicos tienen forma redonda y se instalan en el hueco del velocímetro. Dentro de ellos hay un disco de papel en el que se registra la información. Hoy en día, los tacógrafos analógicos se consideran obsoletos.

Los digitales tienen forma rectangular y se instalan en el hueco de la radio del coche (unidad principal). La implementación técnica del tacógrafo digital es un sistema encriptado de almacenamiento permanente de datos no volátil con acceso restringido a los datos y una impresora térmica para generar informes. En adelante, el artículo tratará solo sobre este tipo de tacógrafos.

La principal diferencia práctica entre los tacógrafos analógicos y digitales radica en el grado de protección de los datos contra la manipulación. Esta necesidad surge porque algunos conductores intentan manipular los datos del tacógrafo para completar las rutas más rápido en detrimento del descanso y la seguridad, o para aumentar artificialmente su kilometraje y desviar combustible. Cualquier interferencia mecánica o entrada incorrecta de datos se registrará en la memoria del tacógrafo digital, lo que se descubrirá durante una inspección oficial. Las manipulaciones detectadas en el tacógrafo conllevan una multa, que dependerá de la gravedad de la infracción y del país donde se detecte.

El acceso a la memoria del tacógrafo se realiza mediante 4 tipos de tarjetas-llave de plástico:

  1. Tarjeta del conductor — permite al conductor guardar datos sobre los modos de trabajo durante 28 días.
  2. Tarjeta de la empresa — permite a la empresa de transporte leer datos sobre los viajes de sus vehículos.
  3. Tarjeta del taller — permite a los técnicos configurar el tacógrafo.
  4. Tarjeta del controlador/inspector — permite a las autoridades leer las infracciones cometidas por el conductor y los fallos ocurridos en el funcionamiento del equipo.

Los datos en la memoria del tacógrafo se almacenan en archivos que pueden tener diferentes formatos (extensiones) dependiendo del modelo del tacógrafo.

En Wialon solo se pueden mostrar los datos de la tarjeta del conductor. Es posible trabajar con el formato DDD y otros formatos de estructura similar (por ejemplo, TGD, V1B, C1B).

Control del RTD en Wialon

Las secciones anteriores son una especie de introducción al tema de la tacografía y el control del RTD. Ahora pasaremos al trabajo directo en el marco de Wialon.

Los tacógrafos no se conectan directamente a Wialon — siempre funcionan a través de un rastreador. Además, algunos modelos de rastreadores tienen un tacógrafo incorporado, es decir, dos dispositivos en una sola carcasa.

Como en la obtención de información participa la combinación "tacógrafo-rastreador-Wialon", los posibles problemas no siempre se pueden resolver desde el lado de Wialon.

En Wialon, la fuente de información sobre el RTD puede no ser solo el tacógrafo. El siguiente esquema ayudará a entender las fuentes y opciones de visualización de la información sobre el RTD presentadas en el sistema.

Fuentes de información sobre el RTD

La información sobre el RTD mostrada en Wialon puede obtenerse de varias fuentes.

Archivo de la tarjeta del conductor

El tacógrafo almacena en la memoria archivos con diferentes datos. La información sobre el RTD de un conductor específico se guarda en su tarjeta. Cargar el archivo de la tarjeta del conductor en Wialon se puede hacer de diferentes maneras dependiendo del modelo del rastreador:

  • Mediante comandos — en la sección de P+F se puede encontrar instrucciones sobre esto. Este método está disponible para los rastreadores que se muestran en la lista de dispositivos compatibles con el filtro La descarga de archivos del tacógrafo.
  • A través de software de terceros, por ejemplo, conectando el rastreador a una computadora. Luego, el archivo debe cargarse en Wialon a través de la aplicación web TachoManager y al cargar, seleccionar a qué conductor pertenece.

El resultado de cada una de las acciones descritas anteriormente será la presencia en Wialon de un archivo de la tarjeta del conductor, que estará vinculado al elemento Conductor.

El archivo de la tarjeta del conductor es la única fuente confiable para mostrar información tacográfica en Wialon. El controlador ve los datos de la misma fuente al verificar las lecturas del tacógrafo en la carretera.

Asignaciones y viajes

El tacógrafo determina el modo de operación por la presencia de velocidad en el vehículo, el estado de ignición y la presencia de la tarjeta en la ranura. Estos datos están disponibles en Wialon incluso sin tacógrafo: usando la detección de viajes con cálculos llevados por el sensor de ignición y la velocidad, y asignaciones/separaciones de conductores. Por lo tanto, la actividad del conductor se puede determinar por los mensajes del rastreador, incluso si no hay un tacógrafo instalado en la unidad.

Las asignaciones y viajes solo se pueden usar para una estimación aproximada del cumplimiento del RTD. A diferencia del tacógrafo, que determina el modo de operación actual en tiempo real, las asignaciones/separaciones de conductores y viajes en Wialon se determinan por los mensajes del rastreador, que se registran con una frecuencia determinada, menor que la del tacógrafo.

Datos en línea

El procedimiento de descarga de archivos de la tarjeta del conductor en Wialon requiere tiempo, lo que no siempre es conveniente. Sin embargo, los usuarios pueden necesitar información sobre el RTD en tiempo real. Para cubrir esta necesidad, se creó en Wialon un algoritmo cuya fuente de datos se selecciona en la pestaña Avanzadas:

  • Parámetros del tacógrafo que el rastreador determina según el modo actual del tacógrafo. Al momento de escribir este artículo, esta funcionalidad solo está implementada en los rastreadores fabricados por Sensata INSIGHTS (ex-BCE), RuptelaTeltonika, y Navtelecom.
  • Asignaciones de conductores y viajes de Wialon.

Los datos en línea calculados a partir de cualquiera de las fuentes se vinculan al elemento Conductor.

Los datos en línea solo se pueden utilizar para una estimación aproximada del cumplimiento del RTD. A diferencia del tacógrafo, que tiene un algoritmo para recalcular los intervalos anteriores, en Wialon los datos en línea se guardan sin recálculo posterior.

Visualización de la información sobre el RTD

La información sobre el RTD en Wialon se puede mostrar de varias maneras.

Tacho View

La aplicación web Tacho View visualiza la información sobre el RTD en forma de diagramas de colores y un informe sobre la actividad del conductor o las infracciones del régimen.

La fuente de información para la visualización se selecciona en la configuración de la aplicación, y se puede utilizar el archivo de la tarjeta del conductor o los datos en línea.

Informe de conductores

La tabla Actividad del conductor muestra información sobre el RTD.

La tabla Violaciones muestra información sobre las infracciones del RTD.

En la configuración de ambas tablas, se puede seleccionar como fuente de información el archivo de la tarjeta del conductor, los datos en línea o las asignaciones y viajes.

Si se seleccionan las asignaciones y viajes como fuente, el resultado de la ejecución repetida del informe cambiará después de modificar la configuración de la detección de viajes de la unidad o al editar el historial de asignaciones y registro de turnos del conductor.

Información adicional sobre la unidad y el conductor

Para utilizar este método, primero es necesario activar la opción Actividad de conductor según datos en línea en la parámetros básicos del usuario.

Al pasar el cursor sobre el conductor, la información sobre el RTD y sus infracciones se mostrará en la descripción emergente.

Se mostrará información similar en la descripción emergente de la unidad y en la información extendida sobre la unidad si en los parámetros del usuario se selecciona mostrar conductores en los lugares mencionados y el conductor está asignado a esta unidad.

La fuente de información para este método de visualización siempre son los datos en línea.

Oleg Zharkovsky,Customer Service Engineer

Trabajo con el módulo Rutas
  • technical_consulting
  • routes

Por su nombre, el módulo Rutas debería ser adecuado para cualquier solicitud de control del recorrido de un vehículo. Sin embargo, este módulo tiene características que lo hacen ideal para resolver algunas tareas y completamente inadecuado para otras. Diferentes opciones de control de rutas se mencionaron en el meetup 4 ways of routes control in Wialon and how to choose the right one (en inglés). En este artículo se examinarán las configuraciones clave del módulo Rutas y ejemplos de su aplicación.

Concepto general

La palabra "ruta" se usa a menudo en el habla cotidiana, pero en Wialon es un término. Para evitar confusiones, acordemos que en este artículo la palabra "ruta" se utilizará solo como término.

Las rutas del módulo del mismo nombre son macroobjetos y no forman parte del recurso, a diferencia de las plantillas de informes, notificaciones, etc. Esto se debe a que la ruta en sí es un objeto multicapa, para cuya configuración correcta será necesario comprender los puntos de control, los horarios y las rutinas.

La característica clave de las rutas es su enfoque en el tiempo de visita a los puntos de control, no en cómo se mueve la unidad entre estos puntos.

Las principales preguntas que deben responderse al usar el módulo Rutas son las siguientes:

  • ¿Cómo se añadirán los puntos de control?
  • ¿Qué tipo de horario se utilizará?
  • ¿Qué orden de paso por los puntos de control se elegirá?
  • ¿Cómo se crearán las rutinas?
  • ¿Cómo se hará seguimiento al resultado?

Cada una de estas preguntas tiene 3 variantes de respuesta. Veamos cada una de ellas.

Añadir puntos de control

La primera capa de las rutas son los puntos de control que la componen. Los puntos de control son áreas en el mapa que la unidad debe visitar. Se pueden añadir de tres maneras:

  1. Añadir puntos desde el mapa es similar a trabajar con la herramienta Dirección: puede hacer doble clic en el lugar necesario en el mapa o ingresar la dirección en la línea correspondiente. El punto encontrado será el centro del punto de control. Por defecto, el radio es de 100 metros, si es necesario se puede cambiar manualmente.

    De manera similar, los puntos de control de una ruta se pueden añadir a través de la herramienta Enrutamiento y luego guardar como ruta.

  2. Añadir puntos de las geocercas implica seleccionar la geocerca necesaria de la lista de disponibles. En este caso, no es necesario especificar el radio, ya que la geocerca ya tiene un área determinada.

  3. Añadir puntos de las unidades es similar al método anterior: solo es necesario seleccionar la unidad de la lista. Como la unidad corresponde a un punto, es necesario establecer un radio para ella (por defecto es de 100 metros).

    El uso de una unidad como punto de control parece un método extraño, sin embargo, este método puede tener variantes de aplicación práctica. Por ejemplo, la unidad que recorre la ruta puede ser un camión, y los puntos de control móviles serán cosechadoras que recolectan la cosecha. Por otro lado, la unidad-punto también puede ser estacionaria, si se trata, por ejemplo, de una estación de combustible en la que se ha instalado un rastreador y se ha registrado en Wialon como una unidad.

Una etapa importante al crear puntos de control es la optimización del orden de visita de los puntos. Durante el proceso de optimización, se muestra en el mapa la supuesta ruta más corta entre los puntos de control, sin embargo, después de guardar la ruta, los puntos de control simplemente se conectarán con líneas punteadas, ya que el módulo Rutas no rastrea la ubicación de la unidad entre los puntos de control.

Si aún no se han creado horarios para la ruta, se pueden hacer cambios en la lista de puntos de control. Si se han creado horarios, la ruta no se puede editar, pero se puede copiar para hacer cambios posteriormente.

Además, las rutas no se pueden transferir de una cuenta a otra.

Tipos de horarios

La segunda capa de las rutas son los horarios, es decir, el tiempo esperado de llegada a los puntos de control y, opcionalmente, el tiempo de salida de ellos. Se pueden añadir varios horarios para un conjunto de puntos de control.

Existen tres tipos de horarios:

  1. Absoluto — este horario solo se puede usar una vez, después de lo cual conviene cambiarlo, copiarlo o eliminarlo.
    Este tipo de horario tiene en cuenta no solo la hora, sino también una fecha específica.

  2. Relativo al día — este horario se puede usar una vez al día.

  3. Relativo a la activación — este horario se puede usar varias veces al día.
    El tiempo de activación es el tiempo especificado al crear la rutina, al llegar el cual comienza a rastrearse el movimiento de la unidad por los puntos de control.
    La mayoría de las veces, al trabajar con este horario, el tiempo de activación coincide con el tiempo de visita del primer punto, por lo que en el horario frente a él aparece el tiempo 00:00, y luego el tiempo se cuenta según cuánto tomará el camino desde el primer punto hasta el segundo, desde el primer punto hasta el tercero, etc.

    Pero también es posible otra situación, cuando la rutina se activa antes de que la unidad entre en el primer punto. En tal caso, en el horario el tiempo se cuenta según cuánto tiempo se moverá la unidad desde el tiempo de activación hasta el primer punto, desde el tiempo de activación hasta el segundo punto, etc.

En los esquemas anteriores se muestran ejemplos de cómo llenar el campo Llegada para diferentes tipos de horarios. Además de este, para cada uno de los puntos de control se puede llenar el campo Salida, lo que permite fijar el tiempo que la unidad debe pasar en el punto. También para cada tiempo se puede especificar una Desviación permitida, es decir, el margen de tiempo permitido de adelanto/retraso.

Además, en el horario de cualquier tipo se puede añadir una Limitación de tiempo, lo que permite aplicar el horario solo en determinados meses, días del mes, días de la semana u horas.

Orden de los puntos de control

Inicialmente, el orden de puntos de control se puede especificar en el horario, sin embargo, más tarde al crear la rutina se puede cambiar por otro. Las opciones disponibles se enumeran a continuación:

  1. Exacto — todos los puntos de control deben ser pasados en el orden establecido sin omisiones.
  2. Omisiones posibles — se espera que los puntos sean visitados en el orden indicado, pero se pueden omitir, siendo obligatoria la visita del último punto.
  3. Arbitrario — los puntos de control se pueden pasar en cualquier orden.

Ninguno de los tipos de horario prohíbe introducir rangos de tiempo de llegada y salida superpuestos, teniendo en cuenta la desviación. El uso de este enfoque depende del orden de paso por los puntos.

Por ejemplo, si se selecciona el orden de paso por los puntos Exacto u Omisiones posibles, la unidad debe visitarlos en una secuencia fija, pero con una desviación significativa, el tiempo de visita puede ser casi cualquiera. Como resultado, se obtiene un control de la secuencia, pero no del tiempo de visita.

Si se selecciona el orden Arbitrario de paso por los puntos, con una desviación significativa se obtiene un control simplemente del hecho de la visita, pero no del tiempo ni de la secuencia.

Creación de rutinas

Las rutinas son la implementación de las rutas y combinan puntos de control, horario y unidad. Son precisamente las rutinas los que permiten rastrear el paso de la unidad por los puntos de acuerdo con el tiempo establecido.

Se puede crear una rutina mediante tres métodos:

  1. Manualmente — este método se puede utilizar cuando hay un despachador que puede crear la rutina en el momento necesario. Es poco probable que este enfoque sea adecuado cuando hay una gran cantidad de rutinas.
  2. Automáticamente para horarios de tipo Relativo al día — este tipo de horario determina inequívocamente el tiempo de creación de la rutina en cualquier día, por lo que es suficiente seleccionar las unidades en el horario y activar la opción Crear rutinas automáticamente para este horario.
  3. Automáticamente mediante notificaciones con tipo de acción Crear una rutina — este método se combina lógicamente con horarios de tipo Relativo a la activación.

    Por ejemplo, se puede crear una notificación que iniciará la rutina cuando la unidad salga de una geocerca.

    Con esta configuración, cualquier salida de la unidad de la geocerca Base resultará en la creación de una rutina. Por lo tanto, si la unidad deja la base no solo para salir a una rutina, es necesario utilizar criterios adicionales para distinguir estas salidas entre sí. Por ejemplo, la unidad puede salir a una rutina solo a una hora determinada, o solo con un conductor asignado, o solo cuando se presiona el botón "Listo para trabajar" en la cabina, etc.

Métodos de seguimiento

Se pueden aplicar diferentes enfoques para el seguimiento de rutas:

  1. Los informes permiten recopilar información sobre la ruta durante el período pasado. Para la unidad y grupo de unidades se pueden utilizar las tablas Rutinas y Puntos de control, y para el informe de rutas — las tablas Rutinas y Historial.

  2. Las notificaciones permiten rastrear las rutinas en tiempo real. El único tipo de notificación Progreso de ruta incluye:

    • Estado de rutina — iniciado, finalizado, anulado;
    • Actividad en puntos de control — llegada, salida, omisión;
    • Control del horario — atraso, adelantamiento, regreso a lo programado.

  3. La línea de tiempo también permite rastrear las rutinas en tiempo real. Es un panel especial disponible en la parte inferior de la pestaña Rutas. Su característica principal es que no muestra las unidades, pero en la escala se muestra el horario en forma de rangos desde Llegada hasta Salida (al hacer clic en el icono , el rango se ampliará teniendo en cuenta la Desviación permitida), y una línea vertical corresponde al tiempo actual.

    Como la unidad no se muestra en la escala, no se puede entender por la escala qué tan lejos está del punto de control. Esto solo se puede hacer usando el mapa.

    Si la línea vertical del tiempo actual ha alcanzado el punto de control, esto no significa que la unidad haya visitado el punto. La visita solo se puede registrar por el cambio de color del punto de control: antes de la visita se indica con un rectángulo vacío, después de la visita el rectángulo se rellena con el color de la ruta (en este caso es azul), y si se omite el punto, el rectángulo se rellena y se contornea en rojo.

Ejemplos de configuración

Al usar el módulo Rutas, es necesario realizar una serie de configuraciones de las que se habló anteriormente. Para mayor comodidad, se han reunido en una tabla de referencia, donde en cada una de las columnas se debe elegir una de las opciones.

El color de la celda en la tabla indica la frecuencia de uso, basada en la práctica de trabajo con socios: verde — frecuente, amarillo — a veces, rojo — raro.

Puntos de control

Horario*

Orden de paso por los puntos

Creación de la rutina

Seguimiento

Direcciones

Absoluto

Exacto

Manualmente

Informes

Geocercas

Relativo al día

Omisiones posibles

Automáticamente (relativo al día)

Notificaciones

Unidades

Relativo a la activación

Arbitrario

Automáticamente (notificaciones)

Línea de tiempo

* El campo Llegada en el horario siempre se llena, ya que es la esencia de los horarios, y los campos Salida y Desviación son opcionales. También se puede especificar una limitación de tiempo.

A continuación se presentan ejemplos de uso del módulo Rutas y la configuración adecuada para ellos.

Entrega de productos de panadería a tiendas

Cada mañana, un camión debe entregar productos de panadería frescos desde la panadería a los mismos puntos de venta. La descarga y el llenado de albaranes en cada punto toman un total de 10 minutos, el tiempo de retraso permitido es de 5 minutos.

Configuración propuesta:

  • Los puntos de control se pueden añadir a través de direcciones o geocercas.
  • La rutina se realiza una vez por la mañana, por lo que es adecuado un horario relativo al día.
  • Para cada punto, el campo Salida contendrá un tiempo 10 minutos mayor que el campo Llegada. En los campos Desviación se deben introducir 5 minutos.
  • No se requiere limitación de tiempo.
  • Como el orden óptimo de visita se puede calcular de antemano y no es necesario omitir puntos (los lotes de productos no son tan grandes, siempre se venden en un día), el orden de paso por los puntos será exacto.
  • La hora de salida es la misma cada día, por lo que la rutina se puede crear automáticamente (relativo al día).
  • Supongamos que durante el proceso de entrega no se esperan problemas que deban resolverse en tiempo real, por lo que para el seguimiento será adecuado un informe por unidad con la tabla Rutinas.

Configuración del horario

Entrega de agua para dispensadores

Una furgoneta distribuye botellas de agua de 5 galones para dispensadores de oficina. Los clientes son regulares y su base está en el sistema. Sin embargo, no todos los clientes logran beber toda el agua para el miércoles (que es el día estándar de entrega), por lo que existe un día adicional de entrega: el jueves. El tiempo exacto de visita a los puntos no es esencial, solo hay un rango aproximado: de 10:00 a 14:00. Debido a la flexibilidad del horario, el tiempo de descarga y llenado de albaranes puede no tenerse en cuenta.

Configuración propuesta:

  • Los puntos de control se pueden añadir a través de direcciones o geocercas. Como último punto se puede indicar el almacén desde donde comienza y termina la entrega.
  • La rutina se realiza una vez a mediados del día, por lo que es adecuado un horario relativo al día.
  • En el campo Llegada para todos los puntos se puede indicar la hora 12:00. El campo Salida se puede dejar sin rellenar. En los campos Desviación se pueden indicar 2 horas.
  • Limitación de tiempo: solo miércoles y jueves.
  • Como no todos los puntos necesitan ser visitados en un día, se debe elegir la opción Omisiones posibles como orden de paso por los puntos.
  • La hora de salida es aproximadamente la misma cada día, por lo que las rutinas se pueden crear automáticamente (relativo al día).
  • La rutina adicional del jueves se puede iniciar manualmente si es necesario, pero en ese caso, en la limitación de tiempo en el horario se debe indicar solo el miércoles, para que la creación automática de la rutina ocurra solo ese día.
  • Los clientes se comunican periódicamente con el administrador para verificar el estado de la entrega en tiempo real, por lo que para el seguimiento se pueden usar notificaciones y la línea de tiempo.

Configuración del horario

Configuración de la limitación de tiempo

Taxi colectivo

Los fines de semana, la minivan está en la estación y espera hasta que se reúna una cantidad suficiente de pasajeros. Después de esto, comienza la rutina y visita cada punto de control. Esta misma ruta se realiza varias veces al día.

Configuración propuesta:

  • Los puntos de control se pueden añadir a través de direcciones o geocercas. El punto de espera de pasajeros al inicio de la ruta está rodeado por una geocerca. El primer punto de la ruta está justo después de esta geocerca.
  • La rutina puede realizarse varias veces al día, por lo que es adecuado un horario relativo a la activación.
  • El campo Llegada para el primer punto es 00:00, y para los demás puntos se rellena en relación al primer punto. Como la minivan pasa poco tiempo en cada parada, el campo Salida se puede dejar sin rellenar. En el campo Desviación se puede introducir cualquier valor, basándose en la situación habitual en esta ruta (por ejemplo, 10 minutos).
  • Limitación de tiempo: sábado y domingo.
  • Se trata de una ruta específica de transporte público, por lo que el orden de paso por los puntos será exacto.
  • Como la unidad comienza a moverse solo después de que se haya reunido una cantidad suficiente de personas en el vehículo, la hora exacta de inicio de la rutina es desconocida. La rutina tendrá que crearse mediante una notificación, y el criterio para iniciarlo será la salida de la geocerca al inicio de la ruta, donde se esperaban los pasajeros.
  • Supongamos que durante el proceso de entrega no se esperan problemas que deban resolverse en tiempo real, por lo que para el seguimiento será adecuado un informe por unidad con la tabla Rutinas.

Creación de geocercas para puntos de control

Configuración del horario

Configuración de la limitación de tiempo

Selección del tipo de notificación para iniciar la rutina

Selección del modo de acción en la notificación

Oleg Zharkovsky,Customer Service Engineer

Cómo elegir una opción de control de rutas
  • technical_consulting
  • routes
  • geofences

Wialon permite satisfacer las necesidades de los clientes de diferentes maneras. Por ejemplo, en el sistema existen al menos cuatro opciones para controlar rutas, cada una con sus propias ventajas y desventajas. Este artículo ayudará a compararlas para elegir la opción que el cliente necesita.

Opciones consideradas

En el marco de la comparación, prestaremos atención a las siguientes cuatro opciones que permiten controlar rutas:

  • Módulo Rutas: a pesar de su nombre, este módulo no es adecuado para todos los casos, sino solo cuando hay un tiempo específico para visitar puntos y no es necesario rastrear el camino entre ellos.

  • Combinación de geocercas, informes y notificaciones (simplificadamente llamaremos a esta opción Geocercas) es la opción más flexible, adecuada para la mayoría de las situaciones, pero requerirá la configuración de varios elementos separados.

  • Aplicación web Logistics es una solución de nicho para organizar el trabajo de servicios de entrega, que, sin embargo, se puede utilizar para resolver otras tareas de negocio.

  • Aplicación web NimBus  una solución de nicho para el transporte público, que también se puede utilizar para resolver otras tareas de negocio.

La terminología utilizada en las opciones consideradas difiere entre sí:


RutasGeocercasLogisticsNimBus
Punto a visitarpunto de controlgeocercapedidoparada
Conjunto de puntos en un solo viajeruta

ruta planificada o plantillaruta
Tiempo de visita a los puntoshorariolimitación de tiempotiempo de llegada estimadohorario
Movimiento de la unidad por el conjunto de puntos

rutina

ruta activarutina

Vale la pena tener en cuenta esta diferencia al comparar las opciones consideradas.

Comparación por criterios

Ahora, las opciones consideradas se resumirán en una tabla, que indicará en qué medida satisfacen diferentes criterios, es decir, los requisitos del cliente. Hemos tratado de hacer estos criterios lo más orientados a la práctica posible, basándonos en la experiencia de comunicación con nuestros socios.

Criterios

RutasGeocercasLogisticsNimBus

Básicos
1Los mismos puntos de control cada día
2

Nuevos puntos de control cada día

noparcialmenteno
3Seguimiento del camino entre puntos de controlno
4Optimización de la secuencia de puntosparcialmenteno
5Optimización del camino entre puntosnoparcialmente
6

Inicio automático del seguimiento de la rutina

no

Específicos
7Condiciones adicionales para visitar puntosnoparcialmenteno
8Horario relativo a la salida
noparcialmente
9Cambio de transporte durante la ejecución de la rutinanoparcialmente
10Ruta larga (más de 2 días)no
11Puntos de control móvilesnono
12Envío de rutas al conductorparcialmenteparcialmenteno

Salida de información
13Control en línea
14Informes del período anterior
15Visualización en la interfaz de rastreoparcialmenteno
16Aplicación móvilnoparcialmente

Ahora consideremos cada uno de los criterios por separado.

1. Los mismos puntos de control cada día

Rutas

Las rutas permiten iniciar rutinas con los mismos puntos de control cada día si se utilizan horarios Relativos al día o Relativos a la activación.

Geocercas

Las geocercas no se eliminan después de visitarlas, por lo que se pueden usar fácilmente en diferentes días.

Logistics

Los pedidos corresponden a los puntos a visitar. Pueden ser permanentes, lo que significa que no se eliminan después de visitarlas. Además, la ruta se puede convertir en una plantilla para repetirla rápidamente en otros días.

NimBus

Las paradas de transporte público rara vez cambian su posición, por lo que la aplicación está diseñada inicialmente para trabajar con los mismos puntos cada día.

2. Nuevos puntos de control cada día

Rutas no

No se pueden añadir nuevos puntos a una ruta ya guardada. Para añadir nuevos puntos, es necesario crear una nueva ruta desde cero, configurando nuevamente los horarios y la creación de rutinas, lo que requiere mucho trabajo.

Geocercasparcialmente

Crear una nueva geocerca y añadirla a informes y notificaciones no es un problema. La configuración puede requerir relativamente mucho tiempo solo cuando es necesario controlar el tiempo de visita a los puntos (a través de las Limitaciones de tiempo en informes y notificaciones).

Logistics

Se puede crear una nueva ruta teniendo en cuenta nuevos pedidos muy rápidamente. También está disponible la adición de puntos a una ruta ya creada.

NimBusno

Como la aplicación está creada para controlar el transporte público, cuyas paradas cambian con poca frecuencia, añadir nuevos puntos requerirá cambiar varias configuraciones a la vez (crear una parada, añadirla a la ruta, cambiar el horario), lo que requiere mucho trabajo.

3. Seguimiento del camino entre puntos de control

Rutasno

El módulo no rastrea el movimiento entre puntos de ninguna manera. Se supone que el conductor debe elegir independientemente el camino de una dirección a otra para cumplir con el horario.

Geocercas

Para rastrear el camino entre puntos, se puede crear una geocerca lineal en las carreteras por las que debe seguir la unidad. Para controlar la salida de la geocerca lineal o el retorno a ella, se pueden usar notificaciones de tipo Geocerca.

Logistics

En la aplicación existe una notificación de tipo Desviación de una ruta, que se activa si la unidad se aleja de la línea de la ruta a una distancia especificada. Además, durante la ejecución de la ruta, se puede mostrar en el mapa la ruta planificada y real de la unidad.

NimBus

En la aplicación existe una notificación de tipo La unidad se fue de la línea de la ruta. Se activa después de recibir un mensaje de la unid4ad que está alejado de la línea de ruta más de 50 metros.

4. Optimización de la secuencia de puntos

Rutas

Existe la posibilidad de optimizar el orden de los puntos en la etapa de creación de la ruta.
Además, en la interfaz de rastreo está disponible la herramienta Enrutamiento, que, entre otras cosas, permite optimizar la secuencia de puntos y guardar el resultado como una ruta.

Geocercasparcialmente

En la interfaz de rastreo existe la herramienta Enrutamiento, que, entre otras cosas, permite optimizar la secuencia de puntos y guardar el resultado como geocerca.

Logistics

Al crear la ruta, la aplicación optimiza automáticamente el orden de los puntos teniendo en cuenta múltiples criterios, y también permite cambiar el orden de los puntos manualmente.

NimBusno

El orden de los puntos en la aplicación se fija manualmente al crear la ruta.

5. Optimización del camino entre puntos

Rutas no

El módulo no rastrea el camino entre puntos. El camino se muestra solo en la etapa de optimización del orden de los puntos.

Geocercasparcialmente

En la interfaz de rastreo existe la herramienta Enrutamiento, que, entre otras cosas, permite optimizar el camino entre puntos y guardar el resultado como geocerca.

Logistics

Al crear la ruta, la aplicación optimiza automáticamente el camino entre puntos teniendo en cuenta múltiples criterios.

NimBus

Al crear la ruta, el camino entre puntos se optimiza automáticamente, después de lo cual se puede ajustar manualmente.

6. Inicio automático del seguimiento de la rutina

Rutas

La creación automática de rutinas está disponible cuando se usa un horario de tipo Relativo al día o cuando se usan notificaciones con tipo de acción Crear una rutina.

Geocercas

En esta variante no existe el concepto de "rutina", por lo que su seguimiento no se inicia en un momento determinado. Se puede comenzar a rastrear la visita a los puntos en cualquier momento después de añadir las geocercas a los informes o notificaciones.

Logisticsno

La aplicación implica que el inicio de la ruta lo realiza el despachador manualmente. Sin embargo, el despachador puede crear en Logistics rutas que comenzarán en el futuro, lo que depende del intervalo de entrega en las propiedades de los pedidos.

NimBus

Si se han creado horarios para la ruta y está activada, la rutina se crea automáticamente. En la aplicación están disponibles dos tipos de activación de rutinas:

  • Según el horario — la rutina se crea un número determinado de minutos antes de la visita planificada a la primera parada; el número de minutos se especifica en la configuración.
  • Al estar en la parada — este tipo de activación está disponible solo para rutas que tienen activada la función de asignación automática de unidades.

7. Condiciones adicionales para visitar puntos

Rutasno

No hay condiciones adicionales de visita. La visita a un punto es cualquier mensaje con coordenadas en el área del punto de control.

Geocercasparcialmente

Mediante la configuración de notificaciones o la filtración de intervalos, se puede ocultar una geocerca visitada de los resultados. Por ejemplo, para una notificación de tipo Geocerca, se puede usar un filtro por velocidad y valor del sensor. Sin embargo, esto no se puede llamar un control completo de la visita, ya que no llega una confirmación adicional de la visita por parte del conductor.

Logistics

Con la ayuda de la aplicación móvil, el conductor puede enviar una confirmación del pedido en forma de comentario, foto o firma.

NimBusnoNo hay condiciones adicionales de visita. La visita a una parada es cualquier mensaje con coordenadas en el área de la parada.

8. Horario relativo a la salida

Rutas

El horario puede tener el tipo Relativo a la activación, de esta manera un horario se puede usar varias veces al día.

Geocercasno

En esta variante no existe el concepto de "horario". Lo reemplazan las Limitaciones de tiempo en informes y notificaciones, donde se especifica el tiempo solo en relación al inicio del día.

Logisticsparcialmente

Al crear la ruta, el tiempo de llegada planificado puede variar dependiendo de la hora actual. Por ejemplo, si los pedidos se pueden visitar de 10:00 a 20:00, y ahora son las 12:00, el tiempo de llegada planificado se contará desde las 12:00. Esto solo en parte se puede llamar un horario relativo a la salida.

NimBus

Para esto, en la aplicación existe el tipo de horario Relativo.

9. Cambio de transporte durante la ejecución de la rutina

Rutasno

No es posible reemplazar la unidad durante la ejecución de la rutina. Por ejemplo, en caso de avería de la primera unidad, será necesario crear una nueva rutina (o incluso una nueva ruta) para la segunda unidad que sale como reemplazo.

Geocercasparcialmente

En esta variante no existe el concepto de "rutina". Sin embargo, formalmente el despachador puede contactar al conductor y dirigirlo a las geocercas no visitadas.

Logistics

En la aplicación existe la posibilidad de cambiar la unidad para una ruta activa.

NimBus

En la rutina se puede cambiar la unidad que lo realiza.

10. Ruta larga (más de 2 días)

Rutas

Para el tipo de horario Absoluto no hay limitaciones en la duración de la ruta, sin embargo, cada uno de estos horarios se puede usar solo 1 vez, después de lo cual se vuelve inútil. Para los horarios Relativo al día y Relativo a la activación se puede alcanzar una duración de 99 horas (poco más de 4 días).

Geocercas

En esta variante no existen los conceptos de "rutina" y "horario". Por lo tanto, nada impide que la unidad se mueva entre geocercas durante varios días, semanas, etc.

Logistics

En la aplicación se puede configurar una limitación de duración máxima, pero si no se activa, la ruta puede durar cualquier cantidad de días.

NimBusno

El horario de la ruta puede incluir un cruce de día, ya que a veces el transporte puede realizar la última rutina después de las 00:00 (para esto se usa la opción Después de medianoche).

11. Puntos de control móviles

Rutas

Las unidades móviles pueden actuar como puntos de control. Esto puede ser útil, por ejemplo, para organizar la cosecha, cuando un camión debe acercarse a las cosechadoras en movimiento.

Geocercas

En las tablas Geocercas y Viajes entre geocercas, se pueden usar unidades como "geocercas móviles".

Logisticsno

Los pedidos en la aplicación tienen una ubicación fija.

NimBusno

Las paradas en la aplicación tienen una ubicación fija.

12. Envío de rutas al conductor

Rutasparcialmente

Existe la posibilidad de enviar rutas a la unidad mediante comandos. Es necesario que el rastreador admita dicho comando y que tenga un navegador conectado. Es decir, esta función no está disponible para todas las unidades.

Geocercasparcialmente

Existe la posibilidad de enviar geocercas a la unidad mediante comandos, sin embargo, no se unificarán en una sola ruta. Además, es necesario que el rastreador admita esta función.

Logistics

Se ha creado una aplicación móvil para los conductores, en la que pueden ver sus rutas planificadas.

NimBusno

No existe tal funcionalidad.

13. Control en línea

Rutas

Se puede seguir la ejecución de la ruta en el mapa en la interfaz de rastreo, mediante notificaciones de tipo Progreso de ruta y en la Línea de tiempo. Desafortunadamente, trabajar con la línea de tiempo no es muy conveniente, ya que no muestra la posición de la unidad.

Geocercas

Se puede seguir la ejecución de la ruta en el mapa en la interfaz de rastreo o mediante notificaciones de tipo Geocerca.

Logistics

Las rutas actualmente activas y los estados de los pedidos se pueden ver en forma de tabla. Las notificaciones también serán útiles para el despachador. Las estadísticas en tiempo real se muestran en la pestaña Dashboard.

NimBus

Para observar la ejecución de las rutinas en línea, es adecuada la pestaña Seguimiento. Las notificaciones también serán útiles para el despachador. Las estadísticas en tiempo real se muestran en la pestaña Resumen.

14. Informes del período anterior

Rutas

Para la unidad y grupo de unidades se pueden usar las tablas Rutinas y Puntos de control, y para el informe de rutas las tablas Rutinas y Historial.

Geocercas

Las tablas más convenientes son Geocercas y Viajes entre geocercas, disponibles para la unidad y grupo de unidades.

Logistics

En la aplicación existe una pestaña especial Informes.

NimBus

En la aplicación existe una pestaña especial Informes.

15. Visualización en la interfaz de segumiento

Rutas

El módulo es parte de la interfaz de rastreo.

Geocercas

Las geocercas, informes y notificaciones son parte de la interfaz de rastreo.

Logisticsparcialmente

Con los datos de Logistics se puede construir la tabla Pedidos, pero solo muestra parte de la información disponible en la aplicación.

NimBusnoEn la interfaz de rastreo se muestra el movimiento de las unidades, sin embargo, no se muestran los datos de la aplicación (paradas, rutas, horarios, rutinas, etc.).

16. Aplicación móvil

Rutasno

Las rutas no se muestran en la aplicación móvil de Wialon.

Geocercas

Las geocercas, notificaciones e informes se muestran en la aplicación móvil. Los clientes pueden rastrear la ubicación usando el enlace del Localizador, que se puede añadir al texto de la notificación mediante la etiqueta %LOCATOR_LINK%. Este enlace es conveniente abrirlo a través del navegador en el teléfono.

Logistics

Se ha creado una aplicación móvil para los conductores. En ella, el conductor ve las rutas que debe realizar. El cliente puede rastrear la ejecución de su pedido al recibir una notificación con la etiqueta %LOCATOR_LINK%. Después de enviar la notificación, la etiqueta se convierte en un enlace del Localizador, que es conveniente abrir a través del navegador en el teléfono.

NimBusparcialmenteLos pasajeros pueden rastrear el movimiento del transporte usando el enlace del Localizador, que es conveniente abrir a través del navegador en el teléfono. Sin embargo, esto no es una aplicación móvil completa.

Oleg Zharkovsky,Customer Service Engineer  

Control de condiciones no estándar mediante grupos dinámicos
  • technical_consulting
  • notifications
  • unit_groups

Wialon ofrece una amplia gama de posibilidades dentro de su funcionalidad estándar, sin embargo, existen tareas que solo se pueden resolver mediante métodos no evidentes. Por ejemplo, mediante grupos dinámicos, que se examinarán en este artículo. Este método permite clasificar unidades por grupos, rastrear una cadena de condiciones mediante notificaciones, encontrar unidades que no cumplieron una determinada condición, y así sucesivamente.

Lógica de funcionamiento de los grupos dinámicos

La lógica de funcionamiento de este método se basa en las siguientes capacidades del sistema:

  • las notificaciones pueden rastrear no solo unidades específicas, sino grupos de unidades;



  • las notificaciones permiten Agregar o quitar unidades de grupos.

Combinando estas capacidades, se puede lograr un comportamiento no evidente:

  • Si se configura una notificación para rastrear un grupo vacío, la notificación estará activada pero no se ejecutará, ya que no hay unidades en el grupo.
  • Si se añaden unidades a este grupo, incluso sin cambiar la configuración de la notificación, esta comenzará automáticamente a rastrear las unidades añadidas.
  • Si se excluyen unidades del grupo, la notificación dejará automáticamente de rastrearlas.

Para resolver ciertas tareas, se puede utilizar un sistema de varias notificaciones que moverán automáticamente las unidades entre grupos, y luego, si es necesario, aplicar otras notificaciones, tareas e informes a estos grupos de unidades. Por brevedad, esta solución se denomina método de grupos dinámicos (o simplemente grupos dinámicos). En este caso, la palabra "dinámico" significa que la composición de los grupos de unidades cambia automáticamente en tiempo real.

Con los grupos dinámicos se pueden crear esquemas lógicos peculiares. Veamos algunos de ellos en detalle.

Clasificación por grupos

El enfoque más simple al usar grupos dinámicos es la clasificación de unidades por grupos. De esta manera, por ejemplo, se pueden dividir todos los vehículos de la flota en móviles e inactivos, libres y ocupados, dentro y fuera del territorio de la empresa, etc. Después de la clasificación, los grupos resultantes se pueden usar en Informes o Tareas, así como mostrarlos en la pestaña Seguimiento.

Para clasificar por una condición A, se necesitarán los siguientes elementos y configuraciones:

  1. Grupo Alfa, que contiene unidades para las que aún no se ha cumplido la condición A.
  2. Grupo Beta, que contiene unidades para las que ya se ha cumplido la condición A.
  3. Notificación 1, configurada para rastrear el grupo Alfa y controlar la condición A. Si se cumple esta condición, las unidades serán excluidas del grupo Alfa y añadidas al grupo Beta.
  4. Notificación 2, configurada para rastrear el grupo Beta y controlar la condición opuesta a la condición A. Si se cumple esta condición, las unidades serán excluidas del grupo Beta y añadidas nuevamente al grupo Alfa.

Esquemáticamente, este enfoque se puede representar de la siguiente manera:

Consideremos varios ejemplos.

Ejemplo 1. Informe sobre unidades fuera del país

Supongamos que la empresa del cliente tiene despachadores que necesitan dividir los vehículos en dos grupos. Uno debe incluir los que actualmente están dentro del país, y el otro, los que están fuera del país. Esta división es necesaria para poder solicitar un informe de cada grupo en cualquier momento.

Para resolver esta tarea, primero es necesario crear una geocerca que corresponda a los límites del país, así como 2 grupos de unidades que se pueden llamar Dentro del país y Fuera del país. Luego, es necesario añadir manualmente las unidades a los grupos correspondientes, basándose en su ubicación actual.

Si inicialmente se colocan todas las unidades en uno de los grupos, después de configurar los grupos dinámicos, se moverán automáticamente a los grupos necesarios después de algún tiempo. La duración de esta clasificación dependerá de la frecuencia con la que cambie la condición controlada (en este ejemplo, es la entrada y salida de la geocerca).

Luego, es necesario configurar la primera notificación llamada Salida, que rastreará el grupo Dentro del país. Controlará la presencia de unidades fuera de la geocerca. Como acción, es necesario elegir el método Agregar o quitar unidades de grupos, específicamente excluir unidades del grupo Dentro del país y añadirlas al grupo Fuera del país.

There are no pictures in the gallery


❮ ❯

La segunda notificación se llamará Retorno y rastreará el grupo Fuera del país. Controlará la presencia de unidades dentro de la geocerca. Como acción, es necesario elegir el método Agregar o quitar unidades de grupos, específicamente excluir unidades del grupo Fuera del país y añadirlas al grupo Dentro del país. Como se puede notar fácilmente, la configuración de la segunda notificación es opuesta a la primera.

There are no pictures in the gallery


❮ ❯

Ahora las unidades se moverán dinámicamente a los grupos necesarios. Los despachadores podrán ejecutar un informe del grupo Dentro del país o Fuera del país en cualquier momento, según sus necesidades.

Esta división en grupos es relevante solo para el momento actual. Es decir, si se ejecuta un informe para un grupo de unidades de la semana pasada, se mostrarán los resultados de las unidades que están en el grupo ahora, no de las que estaban en él durante la semana pasada.

Ejemplo 2. Distribución de accesos a través de grupos

Supongamos que la solicitud del cliente es similar al ejemplo 1, pero adicionalmente es necesario hacer que un determinado despachador tenga acceso solo a las unidades que actualmente están fuera del país. Se tomará como base la solución del ejemplo anterior, y a continuación se considerarán solo las configuraciones faltantes.

Se puede abordar esta solución de dos maneras. Por un lado, se puede configurar la notificación para que no solo mueva las unidades entre grupos, sino que también modifique el acceso a estas unidades. Por otro lado, se pueden proporcionar accesos a las unidades a través de grupos. A continuación se describe solo el último método.

Primero, es necesario asegurarse de que el despachador no tenga derechos a las unidades en cuestión. Luego, es necesario otorgar al despachador derechos solo sobre un grupo específico de unidades (en este ejemplo, es el grupo Fuera del país).

There are no pictures in the gallery


❮ ❯

Ahora, al salir de la geocerca y activarse la notificación, las unidades se añadirán al grupo Fuera del país, por lo que el despachador podrá verlas. Al entrar en la geocerca, ocurrirá la situación opuesta: la notificación excluirá las unidades del grupo Fuera del país, por lo que el despachador no las verá.

Control de múltiples condiciones en una notificación

En Wialon existen 20 tipos de notificaciones que permiten realizar automáticamente diferentes acciones al cumplirse una condición seleccionada. Además, puede haber varias acciones (por ejemplo, se puede mostrar una notificación en línea en una ventana emergente y cambiar el icono de la unidad al mismo tiempo), pero la condición controlada formalmente puede ser solo una.

Sin embargo, en 8 tipos de notificaciones, además de la condición principal, se pueden incluir condiciones adicionales.

Tipo de notificación

Condiciones adicionales

Valor del sensor

Geocerca

Velocidad

Falta del conductor

Velocidad



Geocerca



Interposición de unidades



Dirección



Inactividad



Pérdida de conexión




Llenado de combustible




Descarga de combustible




Resulta que no todos los tipos de notificaciones pueden controlar varias condiciones al mismo tiempo. Y si el cliente necesita combinar condiciones no estándar, es necesario utilizar grupos dinámicos. Con este enfoque, por ejemplo, se puede recibir una notificación de descarga de combustible solo durante el movimiento.

Para controlar dos condiciones A y B se necesitarán los siguientes elementos y configuraciones:

  1. Grupo Alfa, que contiene unidades para las que aún no se ha cumplido la condición A.
  2. Grupo Beta, que contiene unidades para las que ya se ha cumplido la condición A.
  3. Notificación 1, que está configurada para rastrear el grupo Alfa y controlar la condición A. Si se cumple esta condición, las unidades serán excluidas del grupo Alfa y añadidas al grupo Beta.
  4. Notificación 2, que está configurada para rastrear el grupo Beta y controlar la condición opuesta a la condición A. Si se cumple esta condición, las unidades serán excluidas del grupo Beta y añadidas nuevamente al grupo Alfa.
  5. Notificación clave 3, que está configurada para rastrear el grupo Beta y controlar la condición B. Si se cumple esta condición, la notificación realizará la acción final (por ejemplo, notificará al cliente por email).

Esquemáticamente, este enfoque se puede representar de la siguiente manera:

En este esquema se puede prescindir del grupo Alfa, sin embargo, según la práctica, la existencia de este grupo simplifica la configuración y escalabilidad en el futuro, ya que al aumentar la cantidad de unidades controladas, será suficiente con añadirlas al grupo Alfa.

Si es necesario controlar más condiciones, se puede aumentar la cantidad de grupos y notificaciones, por ejemplo:

Una característica distintiva de este enfoque es el control secuencial de condiciones. Por ejemplo, una notificación de tipo Velocidad con un filtro adicional de Valor del sensor controla el cumplimiento de ambas condiciones simultáneamente (para que la notificación se active, se necesita un solo mensaje). Y un sistema de notificaciones con grupos dinámicos, configurado para estas mismas condiciones, primero controla la velocidad y solo después el valor del sensor (es decir, se necesitarán dos mensajes para que se active). Además, aumentar la cantidad de elementos en el esquema también aumentará la cantidad de mensajes necesarios para que se active.

Ejemplo 3. Control de unidades fuera de zonas especiales

Supongamos que el gerente quiere recibir información sobre violaciones del régimen de temperatura de los camiones refrigerados que han salido de la base.

Para resolver esta tarea, primero es necesario crear una geocerca que corresponda a la base, así como dos grupos de unidades que se pueden llamar En la base y Fuera de la base. Luego, es necesario crear dos notificaciones para clasificar las unidades en los grupos creados. Esto se hace de manera similar a la solución del ejemplo 1. A continuación, se mostrará la configuración solo de la última notificación.

Para controlar la temperatura, se necesitará otra notificación llamada Temperatura anormal, que rastreará el grupo Fuera de la base. Como acción, esta notificación enviará, por ejemplo, correos electrónicos al gerente.

There are no pictures in the gallery


❮ ❯

Como resultado, las unidades se moverán dinámicamente a los grupos necesarios, y el control de la temperatura se realizará solo fuera de la base.

Control de condiciones teniendo en cuenta el tiempo

Combinando los enfoques descritos anteriormente, se pueden crear diversos esquemas lógicos y variantes de control. De todas las posibles variantes de uso, se destacan algunas que están relacionadas con el tiempo. Veamos su configuración con ejemplos.

Ejemplo 4. Activación de la notificación una vez al día

Supongamos que el cliente quiere recibir SMS sobre la primera pulsación del botón de pánico para todos los vehículos de la flota durante el día laboral.

Para resolver esta tarea para una unidad, es necesario establecer el valor 1 en el campo Máximo número de activaciones, y luego especificar para este parámetro una restricción de tiempo de 00:00 a 23:59. Si hay pocas unidades, se puede hacer con una notificación para cada una de ellas. Sin embargo, si hay muchas unidades, será necesario recurrir a grupos dinámicos, lo que se considerará a continuación.

Esquemáticamente, la solución de esta tarea se puede representar de la siguiente manera:

Para resolverlo, se necesitarán:

  1. Un grupo llamado No hay alarmas (grupo Alfa en el esquema anterior), que contiene todas las unidades cuyos conductores aún no han pulsado el botón de pánico hoy. A medianoche, todas las unidades de la flota deben estar en este grupo, por lo que es necesario colocarlas allí inicialmente.
  2. Un grupo llamado Alarma activada (grupo Beta), que contiene unidades cuyos conductores han pulsado el botón de pánico hoy. A medianoche, este grupo debe estar vacío.
  3. Notificación Alarma! (notificación 1), que está configurada para rastrear el grupo No hay alarmas y controlar la pulsación del botón de pánico. Si se cumple esta condición, las unidades serán excluidas del grupo No hay alarmas y añadidas al grupo Alarma activada, y la notificación enviará un SMS al cliente.

    There are no pictures in the gallery


    ❮ ❯

  4. La notificación Restablecer configuración (notificación 2 en el esquema) en este caso devolverá todas las unidades del grupo Alarma activada al grupo No hay alarmas cerca de la medianoche. Para ello, debe estar configurada para rastrear el grupo Alarma activada, tener una limitación de tiempo (por ejemplo, de 20:00 a 23:59) y controlar alguna condición que se cumpla para todas las unidades al final del día laboral. Una de estas condiciones puede ser tener una velocidad inferior a 300 km/h (la notificación debe activarse Para todos los mensajes).

    There are no pictures in the gallery


    ❮ ❯

Ahora, las unidades cuyos conductores han pulsado el botón de pánico se moverán al grupo Alarma activada en la primera activación, para el cual ya no se controlará el botón de pánico. Por lo tanto, el cliente recibirá SMS solo sobre la primera alarma de cada unidad. Por la noche, todas las unidades serán devueltas al grupo original.

Ejemplo 5. Informe sobre unidades que no comenzaron a moverse a una hora determinada

Supongamos que el propietario de una flota quiere recibir todos los días una lista de vehículos que no comenzaron a moverse antes de las 8 de la mañana.

Esquemáticamente, la solución de esta tarea se puede representar de la siguiente manera:

Para resolverlo, se necesitarán:

  1. Un grupo llamado No comenzaron a trabajar antes de las 8 (grupo Alfa en el esquema anterior), que contendrá todas las unidades que aún no han comenzado a moverse. Se asumirá que a medianoche todas las unidades de la flota deben estar en este grupo, por lo que es necesario colocarlas allí inicialmente.
  2. Un grupo llamado Comenzaron antes de las 8 (grupo Beta), que contiene unidades que ya han comenzado a moverse. A medianoche, este grupo debe estar vacío.
  3. Una notificación llamada Pudieron comenzar antes de las 8 (notificación 1), que está configurada para rastrear el grupo No comenzaron a trabajar antes de las 8 y controlar la aparición de velocidad (es decir, el inicio del movimiento). Si se cumple esta condición, las unidades serán excluidas del grupo No comenzaron a trabajar antes de las 8 y añadidas al grupo Comenzaron antes de las 8. Además, el funcionamiento de esta notificación debe estar limitado en el tiempo de 00:00 a 07:59.

    There are no pictures in the gallery


    ❮ ❯

  4. Una tarea llamada Lista de retrasados, que a las 08:00 enviará un informe al propietario de la flota sobre las unidades del grupo No comenzaron a trabajar antes de las 8. El informe grupal puede contener, por ejemplo, la tabla Últimos datos de la unidad.

    There are no pictures in the gallery


    ❮ ❯

  5. Una notificación llamada Restablecer configuración (notificación 2) en este caso devolverá todas las unidades del grupo Comenzaron antes de las 8 al grupo No comenzaron a trabajar antes de las 8 cerca de la medianoche. Esto se hace de manera similar a la notificación homónima del ejemplo 4 anterior.

Ahora, las unidades que no comenzaron a moverse antes de las 08:00 permanecerán en el grupo No comenzaron a trabajar antes de las 8, y luego la tarea enviará un informe sobre ellas al propietario de la flota. Si alguna unidad comienza a moverse antes de las 8 de la mañana, se moverá al grupo Comenzaron antes de las 8, por lo que no aparecerá en el informe de infractores. Por la noche, todas las unidades serán devueltas al grupo original.

Ejemplo 6. Control de estados prolongados (más de un día)

Supongamos que el gerente necesita recibir un correo electrónico si una unidad permanece en el territorio de la planta durante más de 3 días (72 horas).

Normalmente, la duración del estado de alarma controlado (en este caso, la permanencia en una geocerca) se configura a través del campo Duración mínima del estado de alarma en la última página de configuración de la notificación. El valor máximo para este campo es de 24 horas (1440 minutos, 86400 segundos). Es decir, no se puede rastrear un estado de alarma de 72 horas sin usar grupos dinámicos.

Las excepciones son dos notificaciones: Inactividad tiene una duración máxima de 30 días, y Pérdida de conexión — 999 999 minutos (aproximadamente 694 días).

Esquemáticamente, la solución de esta tarea se puede representar de la siguiente manera:

Para resolverlo, se necesitarán:

  1. Una geocerca que corresponda al territorio de la planta.
  2. Un grupo llamado Dentro <24 horas o fuera (grupo Alfa en el esquema anterior), que inicialmente contiene todas las unidades.
  3. Un grupo Dentro >24 horas (grupo Beta), que contendrá unidades que han estado dentro de la geocerca durante 24 horas o más.
  4. Un grupo Dentro >48 horas (grupo Gamma), que contendrá unidades que han estado dentro de la geocerca durante 48 horas o más.
  5. Una notificación llamada Entrada por 1 día (notificación 1), que está configurada para rastrear el grupo Dentro <24 horas o fuera y controlar la permanencia en la geocerca durante más de 24 horas. Si se cumple esta condición, las unidades serán excluidas del grupo Dentro <24 horas o fuera y añadidas al grupo Dentro >24 horas. La notificación debe activarse Al cambiar el estado, y la Duración mínima del estado de alarma debe ser de 24 horas (1440 minutos, 86400 segundos).

    There are no pictures in the gallery


    ❮ ❯

  6. Una notificación llamada Entrada por 2 días (notificación 2), que está configurada para rastrear el grupo Dentro >24 horas y controlar la permanencia en la geocerca durante más de 48 horas. Si se cumple esta condición, las unidades serán excluidas del grupo Dentro >24 horas y añadidas al grupo Dentro >48 horas. La notificación debe activarse Para todos los mensajes, y la Duración mínima del estado de alarma debe ser de 24 horas (1440 minutos, 86400 segundos).

    There are no pictures in the gallery


    ❮ ❯

  7. Una notificación llamada Restablecer configuración (notificación 3) devolverá todas las unidades de los grupos Dentro >24 horas y Dentro >48 horas al grupo Dentro <24 horas o fuera si la unidad abandona la geocerca. La notificación debe activarse Al cambiar el estado.

    There are no pictures in the gallery


    ❮ ❯

    En este caso, todas las notificaciones y grupos se utilizan para controlar una sola condición (permanencia dentro o fuera de la geocerca), por lo que a diferencia de la sección anterior del artículo, se puede prescindir de una notificación para mover las unidades al primer grupo.

  8. Una notificación llamada Entrada por 3 días (notificación 4), que está configurada para rastrear el grupo Dentro >48 horas y controlar la permanencia en la geocerca durante más de 72 horas. Si se cumple esta condición, las unidades serán excluidas del grupo Dentro >48 horas y añadidas al grupo Dentro <24 horas o fuera, y se enviará un correo electrónico al gerente. La notificación debe activarse Para todos los mensajes, y la Duración mínima del estado de alarma debe ser de 24 horas (1440 minutos, 86400 segundos).

    There are no pictures in the gallery


    ❮ ❯

Ahora, las unidades que han estado en la geocerca durante un día se moverán del grupo Dentro <24 horas o fuera al grupo Dentro >24 horas, después de un día se moverán al grupo Dentro >48 horas, y después de otro día la notificación enviará un correo electrónico al gerente y moverá la unidad al grupo original. Si en algún momento las unidades abandonan la geocerca, volverán al grupo original Dentro <24 horas o fuera.

Oleg Zharkovsky,Customer Service Engineer





Cómo obtener un certificado SSL
  • technical_consulting
  • sites

Puede necesitar un certificado SSL si inicia sesión en Wialon utilizando un sitio con una dirección diferente a hosting.wialon.com/eu/us/org (es decir, utiliza un sitio externo). El certificado SSL permite el uso de una conexión HTTPS para proteger los datos personales del usuario. Si no se utiliza un certificado SSL, se usa una conexión HTTP y su sitio se marca como no seguro en el navegador.

Los certificados SSL son emitidos por autoridades de certificación especiales. Estas autoridades de certificación son entidades de confianza que autentican la identidad del propietario del sitio web y emiten certificados digitales que confirman que la conexión al sitio es segura. Debe contactar a un proveedor de SSL que trabajará con las autoridades de certificación.

En este artículo, enumeramos los requisitos para agregar certificados SSL y también describimos la secuencia de pasos para obtener certificados.

Qué archivos deben enviarnos

En caso de que desee habilitar HTTPS para su sitio, envíe un correo electrónico a support@wialon.com. Su correo electrónico debe contener la siguiente información:

  1. el nombre del sitio para el que se debe aplicar el certificado SSL;
  2. certificado SSL firmado (emitido) por un tercero (firmado por Comodo, GlobalSign, etc.);
  3. clave privada junto con la frase de contraseña si se ha especificado.

Antes de enviarnos los archivos, asegúrese de que contengan los datos correspondientes. Puede abrir los archivos con la ayuda de un editor de texto para verificar el contenido.

  • Un archivo con el certificado generalmente tiene una de estas extensiones: CRT, PEM o TXT. Los archivos deben tener el siguiente contenido:

    -----BEGIN CERTIFICATE-----
    <>
    -----END CERTIFICATE-----
  • El archivo con el certificado NO debe contener la solicitud de certificado que se vea de la siguiente manera:

    -----BEGIN CERTIFICATE REQUEST-----
    <> 
    -----END CERTIFICATE REQUEST-----

    Si ve la información en el archivo como la del último ejemplo, no es un archivo de certificado sino una solicitud de certificado. No lo necesitamos al agregar el certificado SSL.

  • Un archivo con la clave privada generalmente tiene una de estas extensiones: CRT, PEM o TXT. Los archivos deben tener el siguiente contenido:

    -----BEGIN RSA PRIVATE KEY-----
    <>
    -----END RSA PRIVATE KEY-----

Requisitos

  1. De nuestra parte, solo se aceptan certificados comerciales válidos por un año o más.
  2. No se aceptan certificados autofirmados ni de corto plazo.
  3. No se aceptan certificados Let's Encrypt.
  4. El certificado SSL y la clave privada deben corresponderse entre sí.
  5. No alojamos archivos de terceros para confirmar la propiedad del dominio.

    Para obtener el certificado SSL, debe confirmar la propiedad del dominio. Hay diferentes formas de hacerlo. Tenga en cuenta que no alojamos archivos de terceros para este propósito, así que seleccione un método alternativo de confirmación de propiedad del dominio al seleccionar el tipo de confirmación. Por ejemplo, puede usar el correo electrónico. Con esta opción, se enviará un correo electrónico con un código único y un enlace de confirmación a la dirección de correo electrónico del contacto administrativo del dominio.

    Puede obtener más detalles sobre métodos de validación alternativos de su proveedor de servicios SSL.

Generación de certificado SSL

La forma más fácil de obtener un certificado SSL es pedirle a su proveedor de SSL que genere el certificado SSL por usted, y ellos crearán todos los archivos necesarios de su lado. En este caso, no necesita usar las siguientes instrucciones.

Se deben generar los siguientes archivos para obtener un certificado SSL: una solicitud CSR y una clave privada.

Si necesita crear los archivos mencionados de su lado, siga las breves instrucciones a continuación. Los pasos dependen de su sistema operativo (Linux, macOS o Windows).

Antes de generar una solicitud CSR y una clave privada, recomendamos contactar al proveedor de servicios SSL para conocer los detalles. Por ejemplo, algunas empresas piden no ingresar una dirección de correo electrónico, contraseña de desafío o nombre de empresa opcional al generar el CSR.

Cómo obtener un certificado SSL en Linux/macOS

  1. Asegúrese de que OpenSSL esté instalado. Para ello, abra la terminal y ejecute 'openssl version'. Si OpenSSL está instalado, se mostrará la versión. Si OpenSSL no está instalado, hágalo con los comandos correspondientes que dependen de su sistema operativo. Puede encontrar el comando requerido en la documentación disponible en Internet.
  2. Use OpenSSL para generar un CSR y hacer coincidir la clave privada. Para ello, ejecute el comando a continuación para generar una clave privada RSA de 2048 bits y CSR. Al ejecutar el comando, será necesario ingresar datos como una frase de contraseña, país, dominio para el que se generará la solicitud CSR y otros. Para omitir un campo, presione Enter en el teclado.

    Recuerde la frase de contraseña porque se usa para cifrar la clave privada. La necesitará para acceder a la clave privada generada.

    openssl req -newkey rsa:2048 -keyout PRIVATE_KEY.key -out CSR_REQUEST.csr
    • El nombre del país (opcional) — un código de país de dos letras.
    • El nombre del estado o provincia (opcional) — el nombre de su estado o provincia, o use el nombre de localidad si no tiene ninguno.
    • El campo Nombre de la localidad (opcional) — su ciudad o pueblo.
    • El campo Nombre de la organización (opcional) — el nombre de su empresa u organización. Si la empresa o departamento tiene un '&', '@' o cualquier otro símbolo que use la tecla Shift en su nombre, el símbolo debe ser escrito con letras o omitirse para inscribirse.
    • El campo Nombre común (requerido) — el nombre de dominio completo del sitio web que protegerá el certificado. Debe configurarse de la misma manera en que el cliente lo abordará. En la mayoría de los casos, este será el nombre de dominio completo.
    • Dirección de correo electrónico (opcional) — su dirección de correo electrónico. El correo electrónico utilizado para la generación de CSR no se utilizará para la validación del control de dominio o la entrega del certificado emitido.
    • El campo Contraseña de desafío (opcional) — puede ser necesario para la revocación del certificado.
  3. Obtendrá 2 archivos: solicitud CSR y clave privada. Guarde la clave privada en algún lugar donde se minimice el riesgo de que sea eliminada.
  4. Envíe dos archivos del paso anterior al proveedor de certificados. El proveedor le enviará un certificado firmado y la clave privada.
  5. Envíenos un certificado firmado, clave privada e información sobre en qué sitio deben agregarse.
  6. Volveremos a verificar, los agregaremos y le informaremos sobre los resultados.

En caso de que tenga problemas usando OpenSSL, puede reemplazar el paso 2 usando Digicert OpenSSL CSR Wizard. Este servicio ayuda a crear una solicitud CSR. Simplemente complete el formulario y presione Generar. Como resultado, el servicio creará un comando de consola con todas las opciones requeridas. Copie este comando y ejecútelo en la terminal. Tenga en cuenta que este enfoque aún requiere que OpenSSL esté instalado.

Cómo obtener un certificado SSL en Windows

OpenSSL

  1. Descargue e instale Win32 OpenSSL o Win64 OpenSSL.
  2. Presione Win en el teclado y escriba 'cmd'.
  3. Haga clic con el botón derecho en el Símbolo del sistema y seleccione Ejecutar como administrador.
  4. Muévase a la carpeta donde instaló OpenSSL. Por ejemplo, puede ser:

    cd C:\Program Files\OpenSSL-Win64\bin
  5. Ejecute el siguiente comando:

    set OPENSSL_CONF=*Carpeta base de OpenSSL*\bin\openssl.cfg
  6. Reinicie su computadora para aplicar los cambios.

  7. Presione la tecla Win en el teclado y escriba 'cmd' para encontrar el Símbolo del sistema.

  8. Haga clic con el botón derecho en el Símbolo del sistema y seleccione Ejecutar como administrador.

  9. Vaya a la subcarpeta \bin de su carpeta OpenSSL. Si lo instaló con la configuración predeterminada, podría verse así:

    cd C:\Program Files\OpenSSL-Win64\bin
  10. Ingrese el siguiente comando para generar un archivo de clave privada con el nombre 'PRIVATE_KEY' y un archivo de solicitud de certificado con el nombre 'CSR_REQUEST'.

    openssl req -newkey rsa:2048 -keyout PRIVATE_KEY.key -out CSR_REQUEST.csr
  11. Ingrese la frase de contraseña PEM. Se utiliza para generar una clave privada cifrada.

  12. Introduzca la siguiente información que se incorporará a su solicitud de certificado:

    • Nombre del país (opcional) — un código de país de dos letras.

    • Nombre del estado o provincia (opcional) — el nombre de su estado o provincia, o use el nombre de localidad si no tiene ninguno.

    • Campo Nombre de la localidad (opcional) — su ciudad o pueblo.

    • Campo Nombre de la organización (opcional) — el nombre de su empresa u organización. Si la empresa o departamento tiene un '&', '@' o cualquier otro símbolo que use la tecla Shift en su nombre, el símbolo debe ser escrito con letras o omitirse para inscribirse.

    • Nombre de la unidad organizativa (opcional) — el nombre de su unidad o departamento.

    • Campo Nombre común (requerido) — el nombre de dominio completo del sitio web que protegerá el certificado. Debe configurarse de la misma manera en que el cliente lo abordará. En la mayoría de los casos, este será el nombre de dominio completo.

    • Dirección de correo electrónico (opcional) — su dirección de correo electrónico.

      El correo electrónico utilizado para la generación de CSR no se utilizará para la validación del control de dominio o la entrega del certificado emitido.

  13. Introduzca los siguientes atributos adicionales que se enviarán con su solicitud de certificado:

    • Una contraseña de desafío (opcional) — una contraseña mediante la cual una entidad puede solicitar la revocación del certificado.

    • Un nombre de empresa opcional (opcional).

  14. Los archivos con la clave privada requerida y la solicitud de certificado se generarán y guardarán en la carpeta C:\Program Files\OpenSSL-Win64\bin

  15. Envíe dos archivos al proveedor de certificados. El proveedor le enviará un certificado firmado y la clave privada.

  16. Envíenos un certificado firmado, clave privada e información sobre en qué sitio deben agregarse.

  17. Volveremos a verificar, los agregaremos y le informaremos sobre los resultados.

Administrador de IIS

  1. Presione la tecla Win en el teclado y escriba 'Panel de control'. Luego haga clic en él en los resultados de búsqueda.
  2. Seleccione Programas.
  3. En Programas y características, haga clic en Activar o desactivar las características de Windows.

  4. En la nueva ventana, haga clic en la casilla junto a Internet Information Services y presione Aceptar.
  5. Cuando se complete la instalación, presione Cerrar.
  6. Presione la tecla Win en el teclado y escriba 'Administrador de Internet Information Services (IIS)' en la barra de búsqueda. Luego haga clic en él en los resultados de búsqueda para iniciarlo.
  7. En la nueva ventana, en la columna izquierda Conexiones, seleccione el servidor.
  8. Haga doble clic en el icono Certificados del servidor en el panel central de la ventana.
  9. Haga clic en el enlace Crear una solicitud de certificado en la columna Acciones en el lado derecho de la ventana.
  10. Introduzca la información requerida y presione Siguiente:
    • Campo Nombre común — el nombre de dominio completo del sitio web que protegerá el certificado. Debe configurarse de la misma manera en que el cliente lo abordará. En la mayoría de los casos, este será el nombre de dominio completo. También puede establecer un comodín, como *.midominio.com.
    • Organización — el nombre de su empresa u organización.
    • Unidad organizativa — el nombre de su unidad o departamento.
    • Ciudad / Localidad — ciudad o pueblo donde se encuentra su empresa.
    • Estado / Provincia — el nombre de su estado o provincia, o use el nombre de localidad si no tiene ninguno.
    • Nombre del país / región (opcional) — seleccione de la lista desplegable.
  11. Configure las Propiedades del proveedor de servicios criptográficos. En el menú desplegable, seleccione Microsoft RSA SChannel Cryptographic Provider como el proveedor de servicios criptográficos, 2048 como la longitud de bits y presione Siguiente.
  12. Haga clic en el botón con tres puntos para seleccionar dónde debe colocarse la solicitud CSR y agregue su nombre. Presione Finalizar.



  13. Cierre el Administrador de Internet Information Services (IIS).
  14. Presione la tecla Win en el teclado y escriba 'Consola de administración de Microsoft' o 'mmc' en la barra de búsqueda. Luego haga clic en él en los resultados de búsqueda para iniciarlo.
  15. En la nueva ventana, presione Archivo > Agregar o quitar complemento...
  16. En la nueva ventana, en la columna izquierda, seleccione Certificados y presione el botón Agregar >.
  17. Este complemento siempre gestionará los certificados para la Cuenta de Equipo y presione Siguiente.
  18. Este complemento siempre gestionará el Equipo local (el equipo en es que se está ejecutando esta consola) y presione Finalizar.
  19. Presione Aceptar para guardar los cambios.
  20. En la columna izquierda, seleccione Solicitudes de inscripción de certificados y haga clic en Certificados debajo de eso.
  21. En el panel central de la ventana, encuentre la solicitud de certificado requerida y haga clic derecho en ella. Seleccione Todas las tareas > Exportar...
  22. Seleccione la opción Exportar la clave privada.
  23. Seleccione el formato Intercambio de información personal - PKCS #12 (.PFX).
  24. En el siguiente paso, marque la opción Contraseña. Ingrese la contraseña deseada en los campos Contraseña y Confirmar contraseña y presione Siguiente.
  25. Haga clic en el botón Examinar... para seleccionar dónde se deben guardar los archivos y establezca el nombre del archivo. Presione Siguiente.


  26. Verifique los datos mostrados y presione Finalizar.
  27. Envíe dos archivos al proveedor de certificados. El proveedor le enviará un certificado firmado y la clave privada.
  28. Envíenos un certificado firmado, clave privada e información sobre en qué sitio deben agregarse.
  29. Volveremos a verificar, los agregaremos y le informaremos sobre los resultados.

Preguntas frecuentes

¿Es posible configurar el sitio para usar solo HTTPS?

Sí, es posible. Si ya tiene un certificado SSL agregado para su sitio o solicita agregar su certificado, infórmenos si desea que su sitio sea accesible solo a través de HTTPS.

Por defecto, el sitio web estará disponible a través de HTTP y HTTPS. Si desea cambiar al modo solo HTTPS, solo háganoslo saber. Habilitaremos la redirección forzada a HTTPS, por lo que cuando inicie sesión en HTTP://su.sitio.com, será redirigido forzosamente a HTTPS://su.sitio.com.

¿Qué tipo de certificado SSL elegir?

No restringimos el tipo de certificado, y es posible aplicar diferentes tipos de certificados.

Dependiendo del número de sitios web y nombres de dominio que utilice, puede enviarnos los siguientes tipos de certificados:

Certificado de dominio único
(Single Domain Certificate)
Configurado para un nombre de dominio particular y solo a él puede asegurarlo.
Certificado TLS/SSL de múltiples dominios
(Multi-Domain TLS/SSL Certificate)

Se puede configurar para permitir múltiples dominios. Por ejemplo, un certificado puede asegurar los siguientes sitios: www.su_dominio1.com, www.su_dominio2.com, mail.su_dominio.com, test.su_dominio2.com, etc.

La lista de sitios para los que se puede aplicar el certificado está predefinida. Si aparece otro sitio posteriormente, deberá emitir un certificado adicional para ese sitio.

Certificado TLS/SSL comodín
(Wildcard TLS/SSL Certificate)

Configurado con un carácter comodín (*) en el campo del nombre de dominio, por lo que puede asegurar múltiples nombres de subdominio en el mismo dominio base. Por ejemplo, un certificado generado para '*.su_dominio.com', se puede usar para www.su_dominio.com, mail.su_dominio.com, monitoring.su_dominio.com, etc.

No necesita agregar ningún cambio al certificado ni emitir certificados adicionales si tiene un sitio adicional en el mismo dominio base. Se pueden agregar o eliminar subdominios adicionales en cualquier momento.

Tenga en cuenta que un certificado comodín se usa solo para subdominios en el mismo nivel donde se establece el asterisco. Entonces, un certificado generado para *.su.sitio se puede usar para monitoring.su.sitio, pero no se puede usar para www.monitoring.su.sitio.

Actualmente, hay tres tipos de certificados TLS/SSL. Difieren en los procesos de verificación necesarios para obtener el certificado.
Validación de dominio (Domain Validation or DV)

Tiene el nivel más bajo de validación. Estos certificados solo verifican la propiedad del nombre de dominio.

Validación de organización (Organization Validation or OV)

Ofrece mayor garantía que DV. Estos certificados requieren la validación de la identidad de la organización además de la propiedad del dominio.

Validación extendida (Extended Validation or EV)

Proporciona la máxima confianza a los visitantes. Los certificados EV se someten al proceso de validación más riguroso, incluida la verificación de la identidad legal, la dirección física y la existencia operativa de la organización.

¿Para qué servidor debo emitir el certificado?

Sería preferible si el certificado se generara para el servidor Nginx.

¿Qué debo hacer si la clave privada no coincide con el certificado?

Encuentre la clave privada para generar el certificado SSL y envíenos ambos archivos.

Si tiene problemas para encontrar el archivo requerido, contacte a su proveedor de SSL.

¿Cómo puedo saber cuándo expira el certificado?

La forma más fácil es visitar su sitio siguiendo las instrucciones:

  1. Abra su sitio en el navegador.
  2. Haga clic en el icono cerca de la barra de direcciones del navegador.
  3. En la ventana emergente, haga clic en La conexión es segura.
  4. Luego haga clic en El certificado es válido.
  5. Verifique el campo Período de validez en la nueva ventana.

El ejemplo se proporciona para Chrome. Las instrucciones para otros navegadores deberían ser similares.

Ekaterina Grib,Customer Service Engineer

Introducción al SDK: solicitudes básicas
  • technical_consulting

El SDK (Software Development Kit) es un conjunto de herramientas para desarrollar aplicaciones propias. El SDK de Wialon incluye varios API. El más básico de ellos es el Remote API, al cual están dirigidos estos artículos. El Remote API permite el acceso a los datos a través de solicitudes HTTP y es relevante para 1C, PHP, C++/C# y otros lenguajes de programación. El JS API y otros están construidos sobre la base del Remote API.

En este artículo se considerarán los conocimientos básicos necesarios para los principiantes en el uso del Remote API.

También pueden ser útiles:

  • Portal para desarrolladores (en inglés) con documentación y descripción detallada de cada solicitud.
  • Ejemplos de soluciones listas utilizando el SDK en la sección Marketplace.
  • Serie de webinars Wialon API and SDK: how-to videos (en inglés).
  • Colección de ejemplos (en inglés) en la aplicación Postman para probar solicitudes API.
  • Sección del foro Custom SDK development.

Visualización de solicitudes en el navegador

Al comenzar a estudiar el SDK, a menudo surge la necesidad de entender qué solicitud API se envía al servidor al realizar una u otra acción en la interfaz de Wialon. Esto se puede rastrear fácilmente utilizando las herramientas integradas del navegador para monitorear solicitudes de red.

En el navegador Chrome, se utiliza la pestaña Red de las Herramientas para desarrolladores, que se abren al presionar la tecla F12. En otros navegadores, esta herramienta puede abrirse de manera diferente, lo cual se puede leer en la documentación del navegador.

Al visualizar las solicitudes de red, se puede ver la solicitud enviada, sus parámetros y la respuesta del servidor API en formato JSON.

 Ejemplo

Como ejemplo, crearemos una geocerca circular. Abriremos la pestaña Red y luego llenaremos los campos Nombre, Descripción, Tipo, Radio y Coordenadas.

Después de hacer clic en el botón Guardar, la geocerca se creará y la solicitud correspondiente se mostrará inmediatamente en el panel derecho. Para obtener información sobre la solicitud, haga clic en ella.

En este panel hay tres pestañas convenientes:

  • Encabezados: permite ver la URL completa de la solicitud, el método de envío utilizado (POST o GET), el estado de ejecución de la solicitud y otra información útil. Entre otras cosas, aquí se puede encontrar el nombre de la solicitud API. En este caso, es resource/update_zone.



  • Carga útil: muestra los parámetros de la solicitud, sobre cada uno de los cuales se puede leer en la documentación. Por ejemplo, los parámetros que se sugirieron al crear la geocerca: n — nombre, d — descripción, t — tipo (círculo), w — radio del círculo, x e y — coordenadas del centro.



  • Respuesta: muestra la respuesta del servidor API en formato JSON (en caso de error, su código).


Algunas solicitudes se ejecutan en lotes. Entonces, al visualizar las solicitudes de red, es necesario encontrar la solicitud core/batch y estudiar sus parámetros.

No toda la funcionalidad de la interfaz de seguimiento se basa en el Wialon API (un ejemplo de excepción es la herramienta Distancia).

Formato de la solicitud

Las solicitudes HTTP se envían al servidor en el siguiente formato:

https://host/wialon/ajax.html?svc=REQUEST_NAME¶ms={PARAMETERS}&sid=SESSION_IDENTIFIER
ParámetroDescripción
host

Para Wialon Hosting, generalmente es hst-api.wialon.com, y para Wialon Local, es el sitio del sistema de rastreo o CMS.

svc

Nombre de la solicitud (por ejemplo, resource/update_zone).

params

Parámetros para ejecutar la solicitud en formato JSON. Están enumerados en la documentación, y algunos de ellos pueden ser opcionales. En algunos casos, se envía un valor vacío params={}.

sidIdentificador único de sesión, que se utiliza en casi todas las solicitudes. El servidor lo devuelve al solicitar la autorización.

Se pueden enviar solicitudes para probar la funcionalidad del API a través de la barra de direcciones del navegador. Es necesario que los caracteres estén codificados para su transmisión en la URL. Por ejemplo, el código del carácter % tiene el aspecto %25, lo cual se puede verificar con herramientas en línea de acceso público. Si los caracteres especiales no están codificados, el servidor devolverá un error con el código 4.

Obtención de token y autorización

Para la autorización en Wialon se utiliza un token, es decir, una clave utilizada para la identificación cifrada del usuario.

Para crear un token, se puede utilizar el formulario oAuth. Después de un inicio de sesión exitoso, el token se mostrará en la barra de direcciones del navegador como el valor del parámetro formulario oAuth. Es importante tener en cuenta los parámetros adicionales que regulan propiedades como la duración (parámetro duration), el nombre de usuario (parámetro user), los derechos de acceso (parámetro access_type) y otros.

Ejemplo de formulario extendido para obtener un token:

https://hosting.wialon.com/login.html?client_id=APP_NAME&access_type=256&activation_time=0&duration=0&lang=en&flags=0&user=USER_NAME

Ejemplo de respuesta:

https://hosting.wialon.com/login.html?lang=en&user=USER_NAME&wialon_sdk_url=https%3A%2F%2Fhst%2Dapi%2Ewialon%2Ecom&access_token=TOKEN_VALUE&svc_error=0

Después de obtener el token, se debe utilizar para la autorización. Ejemplo de inicio de sesión con token:

https://hst-api.wialon.com/wialon/ajax.html?svc=token/login¶ms={"token":"TOKEN_VALUE"}

En la respuesta al inicio de sesión con token, se incluye el parámetro eid, cuyo valor es el identificador único de sesión. Luego, se utilizará en casi todas las solicitudes API.

Configuración de la zona horaria

Por defecto, al trabajar con Remote API, los datos se muestran según la zona horaria GMT+0. Para cambiarla a la necesaria, se utiliza la solicitud render/set_locale. Es suficiente ejecutar esta solicitud en el marco de una sesión activa.

Se recomienda configurar la zona horaria inmediatamente después de la autorización, es decir, antes de realizar las acciones principales (solicitud de mensajes, construcción de recorridos, etc.).

Al enviar la solicitud render/set_locale, es necesario utilizar el parámetro tzOffset. El método estándar para calcular su valor se describe en la documentación.

 Ejemplo

Como ejemplo, calcularemos el valor del parámetro tzOffset para un cliente de Australia (Sídney).

Los valores necesarios de configuración de tiempo (horario de verano y zona horaria) se pueden encontrar en la documentación. En este caso, el valor de la zona horaria es 36000 (en formato DEC), y el horario de verano es 0x0A270000 (en formato HEX).

Luego, es necesario realizar dos acciones:

  1. Aplicar una operación bitwise AND a la zona horaria con la máscara f000ffff (HEX).
    Como la operación utilizada se realiza para cada par de bits, primero es necesario convertir los valores al sistema binario:

    Zona horaria

    00000000000000001000110010100000 (BIN)

    36000 (DEC)

    Máscara

    11110000000000001111111111111111 (BIN)

    f000ffff (HEX)

    Resultado de la operación

    00000000000000001000110010100000 (BIN)

    36000 (DEC)

    En este caso, la operación no cambió el valor de la zona horaria.

  2. Aplicar una operación bitwise OR al resultado del paso anterior con la máscara del horario de verano.

    Resultado anterior

    00000000000000001000110010100000 (BIN)

    36000 (DEC)

    Máscara

    00001010001001110000000000000000 (BIN)

    0x0A270000 (HEX)

    Resultado de la operación

    00001010001001111000110010100000 (BIN)

    170364064 (DEC)



También se puede obtener el valor necesario del parámetro tzOffset mediante la visualización de solicitudes de red al cambiar la zona horaria del usuario en la interfaz web.

ID del sistema

En el API, el trabajo con casi todos los elementos se realiza a través de identificadores internos, llamados ID del sistema, que se presentan como valores numéricos únicos.

No se debe confundir el ID del sistema de una unidad con su ID único, que se especifica en las propiedades en la pestaña Básicas.

En las interfaces web, los ID del sistema no se muestran por defecto, pero se pueden ver de tres maneras:

  1. En la respuesta a la solicitud de búsqueda de elementos por criterios (core/search_items). Se detallará en la siguiente sección de este artículo.
  2. En los parámetros de las solicitudes al visualizar las solicitudes de red en el navegador.
  3. En la columna avl_id en el sistema de gestión CMS Manager.

    Para que se muestre la columna avl_id, es necesario iniciar sesión en el CMS, añadiendo al final del enlace ?features=avl_id. Un ejemplo de dicho enlace se muestra en la imagen a continuación.

Búsqueda de elementos por criterios

Esta solicitud permite encontrar elementos según los criterios especificados en los parámetros.

La búsqueda se realiza por los siguientes tipos de elementos, que se indican en el campo itemsType:

  • avl_hw — tipo de dispositivo;
  • avl_resource — recurso;
  • avl_retranslator — repetidor;
  • avl_unit — unidad;
  • avl_unit_group — grupo de unidades;
  • user — usuario;
  • avl_route — ruta.

Uno de los posibles criterios de búsqueda pueden ser los subelementos. En tal caso, para el parámetro propType se establece el valor propitemname, y el parámetro propName tomará los siguientes valores:

  • Unidades:
    • unit_sensors — sensores;
    • unit_commands — comandos;
    • service_intervals — intervalos de servicio;

  • Recursos:
    • drivers — conductores;
    • driver_groups — grupos de conductores;
    • jobs — tareas;
    • notifications — notificaciones;
    • trailers — remolques;
    • trailer_groups — grupos de remolques;
    • zones_library — geocercas;
    • reporttemplates — plantillas de informes;
    • orders — pedidos;

  • Rutas:
    • rounds — rutinas;
    • route_schedules — horarios;

  • Repetidores:
    • retranslator_units — unidades retransmitidas;

  • Unidades, usuarios o recursos:
    • custom_fields — campos personalizados;
    • admin_fields — campos administrativos.

Los ID del sistema de los elementos tienen valores numéricos únicos y son asignados por el servidor.

La numeración de los ID del sistema de los subelementos se realiza en orden de creación y comienza desde 1.

Si anteriormente se crearon varios subelementos (por ejemplo, con ID del sistema 1, 2 y 3), y luego se eliminó alguno de ellos (supongamos que quedaron intactos los subelementos con ID 1 y 3), el siguiente subelemento creado ocupará el ID libre más bajo (en este ejemplo, el ID 2).

Mediante la solicitud de búsqueda no se pueden mostrar datos de un subelemento específico. En la respuesta a la solicitud de búsqueda se incluye información sobre los elementos en sí (tipo de dispositivo, recurso, repetidor, unidad, grupo de unidades, usuario, ruta). Es decir, los subelementos son un criterio para la búsqueda.

Por ejemplo, se puede buscar por el nombre del sensor Engine, pero en la respuesta a la solicitud no solo se incluirá información sobre los sensores, sino sobre las unidades en las que se creó el sensor con el nombre buscado.

La información en la respuesta depende de los flags especificados en la solicitud de búsqueda en el parámetro flags. Los flags se establecen en formato DEC.

Los flags se pueden sumar entre sí para obtener varios tipos de datos al mismo tiempo, en lugar de realizar varias solicitudes separadas.

Por ejemplo, si es necesario mostrar las propiedades principales de la unidad ("flag":1), los comandos creados en ella ("flag":524288) y la última ubicación ("flag":4194304), basta con realizar una búsqueda de unidades con el flag "flag":4718593, ya que 1 + 524288 + 4194304 = 4718593.

Veamos algunos ejemplos de uso de la solicitud de búsqueda de elementos por criterio (otros ejemplos se pueden encontrar en la documentación).

Búsqueda de elementos con un nombre específico

Es necesario obtener una lista de todas las unidades disponibles para el usuario, cuyo nombre contenga la palabra Tractor, así como información sobre los sensores creados en las unidades.

En tal caso, se puede utilizar la siguiente solicitud:

https://hst-api.wialon.com/wialon/ajax.html?svc=core/search_items¶ms={"spec":{"itemsType":"avl_unit","propName":"sys_name","propValueMask":"*Tractor*","sortType":"sys_name"},"force":1,"flags":4097,"from":0,"to":0}&sid=SESSION_IDENTIFIER
Parámetro y su valorDescripción
"itemsType":"avl_unit"

La búsqueda se realizará por unidades. 

Si se deja el valor vacío ("itemsType":""), la búsqueda se realizará por todos los tipos de elementos.

"propName":"sys_name"

La búsqueda se realizará por el nombre del elemento.

"propValueMask":"*Tractor*"

En la respuesta se mostrará una lista de unidades cuyo nombre contenga la palabra Tractor, y antes y después de ella puede haber cualquier cantidad de caracteres. 

Si se establece el valor * para este parámetro, en la respuesta a la solicitud se incluirán elementos con cualquier nombre, es decir, todos los elementos disponibles para el usuario.

"sortType":"sys_name"

La clasificación se realizará por el nombre del elemento.

"force":1

Los resultados de búsquedas anteriores no se tendrán en cuenta.

"flags":4097

La respuesta incluirá información sobre las propiedades básicas, ya que es necesario obtener los nombres de las unidades, y sobre los sensores creados.

1 + 4096 = 4097

"from":0;"to":0No se aplicarán restricciones en la cantidad de elementos encontrados.
 Respuesta
{
	"searchSpec":{
		"itemsType":"avl_unit",
		"propName":"sys_name",
		"propValueMask":"*Tractor*",
		"sortType":"sys_name",
		"propType":"",
		"or_logic":"0"
	},
	"dataFlags":4097,
	"totalItemsCount":1,
	"indexFrom":0,
	"indexTo":0,
	"items":[
		{
			"nm":"Tractor 1",
			"cls":2,
			"id":22353120,
			"mu":0,
			"sens":{
				"1":{
					"id":1,
					"n":"Ignition",
					"t":"engine operation",
					"d":"",
					"m":"On\/Off",
					"p":"in1",
					"f":0,
					"c":"{\"act\":1,\"appear_in_popup\":true,\"ci\":{},\"cm\":1,\"mu\":0,\"pos\":2,\"show_time\":false,\"timeout\":0}",
					"vt":0,
					"vs":0,
					"tbl":[]
				},
				"2":{
					"id":2,
					"n":"Fuel level",
					"t":"fuel level",
					"d":"",
					"m":"l",
					"p":"adc1",
					"f":0,
					"c":"{\"act\":1,\"appear_in_popup\":true,\"calc_fuel\":0,\"ci\":{},\"cm\":1,\"fuel_params\":{\"fillingsJoinInterval\":300,\"filterQuality\":0,\"flags\":0,\"ignoreStayTimeout\":10,\"minFillingVolume\":20,\"minTheftTimeout\":0,\"minTheftVolume\":10,\"theftsJoinInterval\":300},\"mu\":0,\"pos\":1,\"show_time\":false,\"timeout\":0}",
					"vt":0,
					"vs":0,
					"tbl":[]
				}
			},
			"sens_max":-1,
			"uacl":-1
		}
	]
}

Búsqueda de usuarios creados después de una fecha específica

Es necesario obtener una lista de usuarios que fueron creados después del 23 de febrero de 2021 a las 05:41:46 (GMT+0). La respuesta debe contener los ID del sistema de estos usuarios y sus direcciones de correo electrónico.

En este caso, se puede utilizar la siguiente solicitud:

https://hst-api.wialon.com/wialon/ajax.html?svc=core/search_items¶ms={"spec":{"itemsType":"user","propName":"rel_creation_time","propValueMask":">=1614058906","sortType":"sys_name"},"force":1,"flags":3,"from":0,"to":0}&sid=SESSION_IDENTIFIER
Parámetro y su valorDescripción
"itemsType":"user"

La búsqueda se realizará por usuarios.

"propName":"rel_creation_time"

La búsqueda se realizará por fecha de creación.

"propValueMask":">=1614058906"

La respuesta mostrará una lista de elementos cuyo tiempo de creación es mayor o igual al 23 de febrero de 2021 a las 05:41:46 (GMT+0). 

En las solicitudes se utiliza el tiempo Unix. Para convertir la fecha y hora a tiempo Unix, se pueden usar herramientas en línea de acceso público.

"sortType":"sys_name"

La clasificación se realizará por el nombre del elemento.

"force":1

Los resultados de búsquedas anteriores no se tendrán en cuenta.

"flags":3

La respuesta contendrá información sobre las propiedades básicas, ya que es necesario obtener los ID del sistema de los usuarios, y sobre las propiedades personalizadas, ya que es necesario obtener las direcciones de correo electrónico de los usuarios.

1 + 2 = 3

"from":0;"to":0No se aplicarán restricciones en la cantidad de elementos encontrados.

Búsqueda de unidades de un tipo específico

Es necesario obtener una lista de unidades con el tipo de equipo Wialon Retranslator, que hayan enviado mensajes después del 12 de febrero de 2023 a las 12:00:00 (GMT+0). La respuesta debe mostrar los sensores de las unidades, el tiempo del último mensaje y las ubicaciones.

En este caso, se puede utilizar la siguiente solicitud:

https://hst-api.wialon.com/wialon/ajax.html?svc=core/search_items¶ms={"spec":{"itemsType":"avl_unit","propName":"rel_hw_type_name,rel_last_msg_date","propValueMask":"Wialon%20Retranslator,>1676203200","sortType":"rel_creation_time"},"force":1,"flags":1,"from":0,"to":0}&sid=SESSION_IDENTIFIER
Parámetro y su valorDescripción
"itemsType":"avl_unit"

La búsqueda se realizará por unidades.

"propName":"rel_hw_type_name,rel_last_msg_date"

La búsqueda se realizará por tipo de equipo y tiempo del último mensaje recibido.

"propValueMask":"Wialon%20Retranslator,>1676203200"

La respuesta mostrará una lista de elementos con el tipo de equipo Wialon Retranslator, cuyo tiempo de envío del último mensaje es posterior al 12 de febrero de 2023 a las 12:00:00 (GMT+0).

"sortType":"rel_creation_time"

La clasificación se realizará por la fecha de creación de los elementos.

"force":1

Los resultados de búsquedas anteriores no se tendrán en cuenta.

"flags":1

La respuesta contendrá información sobre las propiedades básicas de la unidad.

"from":0;"to":0No se aplicarán restricciones en la cantidad de elementos encontrados.

Búsqueda de unidades por nombre de sensor

Es necesario obtener una lista de unidades en las que se haya creado un sensor con el nombre Engine.

En este caso, se puede utilizar la siguiente solicitud:

https://hst-api.wialon.com/wialon/ajax.html?svc=core/search_items¶ms={"spec":{"itemsType":"avl_unit","propType":"propitemname","propName":"unit_sensors","propValueMask":"Engine","sortType":"sys_name"},"force":1,"flags":1,"from":0,"to":0}&sid=SESSION_IDENTIFIER
Parameter and its valueDescripción
"itemsType":"avl_unit"La búsqueda se realizará por unidades.
"propType":"propitemname"La búsqueda se realizará por nombre de subelemento.
"propName":"unit_sensors"La búsqueda se realizará por nombre de sensor.
"propValueMask":"engine"La respuesta mostrará una lista de unidades en cuyas propiedades se haya creado un sensor con el nombre Engine.
"sortType":"sys_name"La clasificación se realizará por el nombre del elemento.
"force":1Los resultados de búsquedas anteriores no se tendrán en cuenta.
"flags":1La respuesta contendrá información sobre las propiedades básicas de las unidades.
"from":0;"to":0No se aplicarán restricciones en la cantidad de elementos encontrados.

Búsqueda de grupos de unidades por varios criterios

Es necesario obtener una lista de grupos de unidades que fueron creados por el usuario User y en los que se hayan añadido más de 5 unidades.

En este caso, se puede utilizar la siguiente solicitud:

https://hst-api.wialon.com/wialon/ajax.html?svc=core/search_items¶ms={"spec":{"itemsType":"avl_unit_group","propName":"rel_user_creator_name,rel_group_unit_count","propValueMask":"User,>5","sortType":"sys_name"},"force":1,"flags":133,"from":0,"to":0}&sid=SESSION_IDENTIFIER
Parámetro y su valorDescripción
"itemsType":"avl_unit_group"La búsqueda se realizará por grupos de unidades.
"propName":"rel_user_creator_name,rel_group_unit_count"La búsqueda se realizará por nombre del creador y cantidad de elementos en el grupo.
"propValueMask":"User,>5"La respuesta mostrará una lista de grupos de unidades cuyo creador es el usuario User y en los que se hayan añadido más de 5 unidades.
"sortType":"sys_name"La clasificación se realizará por el nombre del elemento.
"force":1Los resultados de búsquedas anteriores no se tendrán en cuenta.
"flags":133

La respuesta contendrá información sobre las propiedades básicas, propiedades de facturación y campos administrativos.

1 + 4 + 128 = 133

"from":0;"to":0No se aplicarán restricciones en la cantidad de elementos encontrados.

Lista de errores comunes

El error se muestra cuando no se puede ejecutar la solicitud. La lista completa de errores devueltos se puede encontrar en la documentación.

Los errores más comunes son:

  • {error: 1} — sesión no válida. Este error se muestra cuando ha expirado el tiempo de vida del identificador único de sesión. Para corregir el error, basta con iniciar sesión con el token nuevamente y usar el nuevo identificador de sesión (sid) para ejecutar las solicitudes.

    Si no se ejecuta ninguna solicitud dentro de los 5 minutos en el marco de la sesión, esta se vuelve inactiva. Para mantener la sesión, puede enviar la solicitud avl_evts cada 5 minutos.

  • {error: 4} — entrada no válida. Este error se muestra si hay un error en el texto de la solicitud: no se especifican todos los parámetros requeridos, los parámetros de texto no están entre comillas, falta un paréntesis de apertura o cierre, etc. Para corregir el error, es necesario corregir el texto de la solicitud según su descripción en la documentación.

  • {error: 7} — acceso denegado. Este error se muestra si el usuario no tiene suficientes derechos para ejecutar la solicitud. Para corregir el error, es necesario verificar si el token utilizado para obtener el identificador único de sesión tiene suficientes flags de acceso, así como si el usuario para el cual se generó el token tiene suficientes derechos sobre los elementos utilizados.

Ekaterina Grib,Customer Service Engineer

Introducción al SDK: creación de cuentas y unidades
  • technical_consulting

En este artículo se considerará la creación de cuentas y unidades mediante el Remote API. Estos elementos son clave al trabajar con Wialon, y su creación requiere la ejecución de una serie de acciones obligatorias.

También pueden ser útiles:

También pueden ser útiles:

  • Artículo Introducción al SDK: solicitudes básicas.
  • Portal para desarrolladores (en inglés) con documentación y descripción detallada de cada solicitud.
  • Ejemplos de soluciones listas utilizando el SDK en la sección Marketplace.
  • Serie de webinars Wialon API and SDK: how-to videos (en inglés).
  • Colección de ejemplos (en inglés) en la aplicación Postman para probar solicitudes API.
  • Sección del foro Custom SDK development.

Creación de una cuenta

Antes de realizar esta acción, es necesario recordar dos términos importantes:

  • Creador: es el usuario en nombre del cual se crea un determinado elemento del sistema.
  • Cuenta: es un macroobjeto del sistema que representa la unidad de un recurso, un usuario y un plan de facturación.

Por lo tanto, para crear una cuenta, es necesario:

  1. Encontrar un plan de facturación adecuado.
  2. Encontrar el system ID del usuario creador, bajo el cual se creará el nuevo usuario.
  3. Crear un nuevo usuario en nombre del usuario encontrado.
  4. Crear un recurso en nombre del nuevo usuario.
  5. Unir el nuevo usuario, el recurso y el plan de facturación en una cuenta.

Veamos las solicitudes necesarias en cada uno de estos pasos con el siguiente ejemplo: es necesario crear una cuenta con el nombre sdk_account, que en la jerarquía del servicio estará bajo la cuenta del usuario manager.

1. Búsqueda del plan de facturación

Usamos la solicitud core/get_account_data.

https://hst-api.wialon.com/wialon/ajax.html?svc=core/get_account_data¶ms={"type":1}&sid=SESSION_IDENTIFIER

A diferencia de otros elementos, el plan de facturación no tiene un ID del sistema. Si es necesario referirse a él, el parámetro único es el nombre.

Los nombres de los planes de facturación asignados se mostrarán en la respuesta a la solicitud en el parámetro subPlans. Supongamos que usaremos el plan de facturación con el nombre standard_client.

Si en la respuesta no se muestran planes de facturación, es necesario verificar si la cuenta tiene derechos de distribuidor y si se le han asignado planes de facturación.

2. Búsqueda del ID del sistema del usuario creador

Usamos la solicitud core/search_items.

https://hst-api.wialon.com/wialon/ajax.html?svc=core/search_items¶ms={"spec":{"itemsType":"user","propName":"sys_name","propValueMask":"manager","sortType":"sys_name"},"force":1,"flags":1,"from":0,"to":0}&sid=SESSION_IDENTIFIER

Parámetro y su valor

Descripción
"itemsType":"user"La búsqueda se realizará por usuarios.
"propName":"sys_name"La búsqueda se realizará por el nombre del elemento.
"propValueMask":"manager"La respuesta mostrará el usuario cuyo nombre coincide completamente con la expresión manager.
"sortType":"sys_name"La clasificación se realizará por el nombre del elemento.
"force":1Los resultados de búsquedas anteriores no se tendrán en cuenta.
"flags":1La respuesta contendrá solo información sobre las propiedades básicas.
"from":0;"to":0No se aplicarán restricciones en la cantidad de elementos encontrados.

El ID del sistema del usuario se mostrará en la respuesta a la solicitud en el parámetro id. Supongamos que tiene el valor 11111.

3. Creación de un nuevo usuario

Usamos la solicitud core/create_user.

https://hst-api.wialon.com/wialon/ajax.html?svc=core/create_user¶ms={"creatorId":11111,"name":"sdk_account","password":"Pa%24%24w0rd","dataFlags":1}&sid=SESSION_IDENTIFIER
Parámetro y su valorDescripción
"creatorId":11111El creador del nuevo usuario será el usuario con el ID del sistema 11111.
"name":"sdk_account"El nuevo usuario tendrá el nombre sdk_account.
"password":"Pa%24%24w0rd"

El nuevo usuario tendrá la contraseña Pa$$w0rd.

Dado que por requisitos de seguridad la contraseña debe contener caracteres especiales, estos deben estar codificados para su transmisión en la URL.

"dataFlags":1La respuesta mostrará solo las propiedades básicas del nuevo usuario.

El ID del sistema del usuario se mostrará en la respuesta a la solicitud en el parámetro id. Supongamos que tiene el valor 22222.

4. Creación de un recurso

Usamos la solicitud core/create_resource.

https://hst-api.wialon.com/wialon/ajax.html?svc=core/create_resource¶ms={"creatorId":22222,"name":"sdk_account","dataFlags":1,"skipCreatorCheck":0}&sid=SESSION_IDENTIFIER
Parámetro y su valorDescripción
"creatorId":22222El creador del nuevo recurso será el usuario con el ID del sistema 22222.
"name":"sdk_account"El nuevo recurso tendrá el nombre sdk_account.
"dataFlags":1La respuesta mostrará solo las propiedades básicas del nuevo recurso.
"skipCreatorCheck":0Verificar si el usuario es creador de algún elemento del sistema en este momento.

El ID del sistema del recurso se mostrará en la respuesta a la solicitud en el parámetro id. Supongamos que tiene el valor 33333.

5. Unión en una cuenta

Usamos la solicitud account/create_account.

https://hst-api.wialon.com/wialon/ajax.html?svc=account/create_account¶ms={"itemId":33333,"plan":"standard_client"}&sid=SESSION_IDENTIFIER
Parámetro y su valorDescripción
"itemId":33333

La nueva cuenta contendrá el recurso con el ID del sistema 33333.

"plan":"standard_client"La nueva cuenta utilizará el plan de facturación standard_client.

Arriba se consideran solo los pasos mínimos necesarios para la aparición de una cuenta en el sistema. Para realizar otras configuraciones, es necesario usar solicitudes separadas de la lista en la documentación.

Creación de una unidad

Para crear una unidad mediante el Remote API, es necesario:

  1. Encontrar el ID del sistema del tipo de equipo.
  2. Encontrar el ID del sistema del usuario creador, en cuya cuenta se ubicará la futura unidad.
  3. Crear la unidad.
  4. Asignar un ID único a la unidad.

Veamos las solicitudes necesarias con el siguiente ejemplo: es necesario crear una unidad Delivery truck con el tipo de equipo Wialon IPS y el ID único 12345 en la cuenta del usuario sdk_account.

1. Búsqueda del ID del sistema del tipo de equipo

Usamos la solicitud core/get_hw_types.

https://hst-api.wialon.com/wialon/ajax.html?svc=core/get_hw_types¶ms={"filterType":"name","filterValue":["Wialon%20IPS"],"includeType":0,"ignoreRename":1}&sid=SESSION_IDENTIFIER
Parámetro y su valorDescripción
"filterType":"name"La filtración se realizará por el nombre del tipo de equipo.
"filterValue":["Wialon%20IPS"]La búsqueda se realizará por la expresión Wialon IPS.
"includeType":0La respuesta no mostrará información adicional sobre el tipo de equipo.
"ignoreRename":1La respuesta ignorará los renombramientos de tipos de equipo.

El ID del sistema del tipo de equipo se mostrará en la respuesta a la solicitud en el parámetro id. Supongamos que tiene el valor 44444.

El ID del sistema de un tipo de equipo puede diferir para los diferentes servicios Wialon Hosting y Wialon Local.

2. Búsqueda del ID del sistema del usuario creador

Usamos la solicitud core/search_items.

https://hst-api.wialon.com/wialon/ajax.html?svc=core/search_items¶ms={"spec":{"itemsType":"user","propName":"sys_name","propValueMask":"sdk_account","sortType":"sys_name"},"force":1,"flags":1,"from":0,"to":0}&sid=SESSION_IDENTIFIER
Parámetro y su valorDescripción
"itemsType":"user"La búsqueda se realizará por usuarios.
"propName":"sys_name"La búsqueda se realizará por el nombre del elemento.
"propValueMask":"sdk_account"La respuesta mostrará el usuario cuyo nombre coincide completamente con la palabra sdk_account.
"sortType":"sys_name"La clasificación se realizará por el nombre del elemento.
"force":1Los resultados de búsquedas anteriores no se tendrán en cuenta.
"flags":1La respuesta contendrá solo información sobre las propiedades básicas.
"from":0;"to":0No se aplicarán restricciones en la cantidad de elementos encontrados.

El ID del sistema del usuario se mostrará en la respuesta a la solicitud en el parámetro id. Supongamos que tiene el valor 22222.

3. Creación de la unidad

Usamos la solicitud core/create_unitcore/create_unit.

https://hst-api.wialon.com/wialon/ajax.html?svc=core/create_unit¶ms={"creatorId":22222,"name":"Delivery%20truck","hwTypeId":"44444","dataFlags":1}&sid=SESSION_IDENTIFIER
Parámetro y su valorDescripción
"creatorId":22222El creador de la nueva unidad será el usuario con el ID del sistema 22222.
"name":"Delivery%20truck"El nombre de la nueva unidad será Delivery truck.
"hwTypeId":"44444"El ID del sistema del tipo de equipo para la nueva unidad será 44444.
"dataFlags":1La respuesta mostrará solo las propiedades básicas de la nueva unidad.

El ID del sistema de la unidad se mostrará en la respuesta a la solicitud en el parámetro id. Supongamos que tiene el valor 55555.

4. Asignación de un ID único

Usamos la solicitud unit/update_device_type.

https://hst-api.wialon.com/wialon/ajax.html?svc=unit/update_device_type¶ms={"itemId":55555,"deviceTypeId":"44444","uniqueId":"12345"}&sid=SESSION_IDENTIFIER
Parámetro y su valorDescripción
"itemId":55555El cambio de configuración se realizará para la unidad con el ID del sistema 55555.
"deviceTypeId":"44444"

El ID del sistema del tipo de equipo será 44444.

Con este parámetro se puede cambiar el tipo de equipo de la unidad.

"uniqueId":"12345"El ID único de la unidad será 12345.

Arriba se consideran solo los pasos mínimos necesarios para la aparición de una unidad en el sistema. Para realizar otras configuraciones, es necesario usar solicitudes separadas de la lista en la documentación.

Ekaterina Grib,Customer Service Engineer

Introducción al SDK: ejecución de informes
  • technical_consulting

En este artículo se considerará el trabajo con plantillas de informes mediante el Remote API. La ejecución de informes a través del SDK implica una secuencia de acciones obligatorias que no son visibles al trabajar en la interfaz web. Para una visión completa, se proporcionarán ejemplos de trabajo con informes con y sin agrupación.

También pueden ser útiles:

  • Artículo Introducción al SDK: solicitudes básicas.
  • Portal para desarrolladores (en inglés) con documentación y descripción detallada de cada solicitud.
  • Ejemplos de soluciones listas utilizando el SDK en la sección Marketplace.
  • Ejemplos de códigos (en inglés) para trabajar con informes.
  • Serie de webinars Wialon API and SDK: how-to videos (en inglés).
  • Colección de ejemplos (en inglés) en la aplicación Postman para probar solicitudes API.
  • Sección del foro Custom SDK development.

Creación de informes

En la mayoría de los casos, los usuarios crean plantillas de informes en la interfaz web y luego las ejecutan mediante solicitudes API. A continuación, consideraremos precisamente estos casos.

Sin embargo, la creación de plantillas de informes también está disponible a través del SDK, para lo cual se debe utilizar la solicitud report/update_report.

Secuencia de acciones

Para obtener resultados de informes mediante el Remote API, es necesario enviar varias solicitudes consecutivas. El uso de algunas de ellas depende de la presencia de agrupación en el informe y de la cantidad de datos analizados. Presentamos la lista más general de acciones:

  1. Autorización mediante la solicitud token/login y configuración de la localización mediante la solicitud render/set_locale.

  2. Obtención de los ID del sistema necesarios para:

    • el objeto para el cual se debe ejecutar el informe;

      Dado que los informes pueden ejecutarse para conductores, remolques, pasajeros, geocercas y sus grupos, en algunos casos también será necesario obtener los IDs del sistema para estos subelementos.

    • el recurso en el que se encuentra la plantilla del informe;
    • la propia plantilla del informe.

  3. Ejecución del informe mediante la solicitud report/exec_report.

    En general, recomendamos ejecutar el informe en segundo plano en el servidor. A pesar del aumento en la cantidad de pasos, esto puede ser útil si el informe puede tardar mucho en ejecutarse debido a la gran cantidad de unidades, el intervalo de ejecución del informe, la cantidad de tablas y gráficos, etc. A continuación, en el artículo se considerará precisamente la ejecución del informe en segundo plano.

    Si el informe no se ejecuta en segundo plano en el servidor, la respuesta a esta solicitud será similar a la respuesta del paso 5, por lo que se puede pasar directamente al paso 6.

  4. Verificación del estado de ejecución del informe mediante la solicitud report/get_report_status. Después de confirmar que el informe está listo, se puede continuar con las instrucciones.

  5. Obtención del resultado del informe mediante la solicitud report/apply_report_result.
    El resultado de esta solicitud proporcionará la cantidad de filas, columnas y niveles de anidamiento si hay agrupación.

  6. Obtención de las filas de la tabla mediante la solicitud report/get_result_rows para un informe sin agrupación o mediante la solicitud report/select_result_rows para un informe con agrupación.
    La selección de la tabla, los niveles de anidamiento y las filas mostradas se realiza en función de los datos de la respuesta a la solicitud anterior.

  7. Exportación a archivo mediante la solicitud report/export_result.
    Este paso es opcional, pero bastante sencillo y útil, por lo que también lo consideraremos.

  8. Eliminación del resultado del informe anterior mediante la solicitud report/cleanup_result.
    Este paso es obligatorio si se deben ejecutar varios informes en una sesión.

Las siguientes solicitudes no pueden ejecutarse simultáneamente:

  • report/exec_report
  • report/export_result
  • report/get_result_chart
  • report/get_result_map
  • report/get_result_chart
  • resource/get_driver_bindings
  • resource/get_trailer_bindings
  • resource/get_tag_bindings
  • exchange/import_zones_save
  • exchange/import_json
  • exchange/import_messages
  • exchange/import_pois_read
  • exchange/import_zones_read
  • unit/get_trips
  • render/create_messages_layer
  • messages/load_interval
  • exchange/export_zones
  • exchange/export_json
  • exchange/export_messages
  • exchange/export_pois
  • account/get_account_history

A continuación, consideraremos dos ejemplos de trabajo con informes (sin agrupación y con agrupación).

Trabajo con un informe sin agrupación

Es necesario obtener los resultados de la ejecución del informe Lista de viajes, disponible para el usuario autorizado por token, para la unidad Truck 0769 (ID del sistema 55555) para el intervalo de tiempo del 30 de junio de 2023 a las 20:00 al 1 de julio de 2023 a las 03:59 (GMT+0) en forma de respuesta a la solicitud API y archivo PDF.

En la interfaz web, el resultado se ve de la siguiente manera:

1. Autorización y configuración de la localización

Usamos la solicitud token/login.

https://hst-api.wialon.com/wialon/ajax.html?svc=token/login¶ms={"token":"TOKEN_VALUE"}

La autorización se describe con más detalle en uno de los artículos anteriores.

La configuración de la localización incluye la configuración de la zona horaria (también se consideró anteriormente), el formato de la fecha y otros parámetros.

Si la configuración de la zona horaria se realiza dentro de la sesión, al ejecutar el informe, el tiempo se establece en GMT+0.

Usamos la solicitud render/set_locale.

https://hst-api.wialon.com/wialon/ajax.html?svc=render/set_locale¶ms={"tzOffset":134217728,"language":"es","formatDate":"%25E.%25m.%25Y%20%25H:%25M:%25S"}&sid=SESSION_IDENTIFIER
Parámetro y su valorDescripción
"tzOffset":134217728Se aplicará la zona horaria GMT+0 (sin horario de verano).
"language":"es"Se utilizará el idioma español.
"formatDate":"%25Y.%25m.%25E%20%25H:%25M:%25S"Se utilizará el formato de fecha yyyy-MM-dd y el formato de hora HH:mm:ss.

No realizar la configuración de la localización puede llevar a diferencias en los resultados al ejecutar el informe mediante el Remote API y la interfaz web.

2. Obtención de los ID del sistema

En uno de los artículos anteriores ya describimos cómo realizar la búsqueda de elementos por criterios, por lo que ahora nos centraremos solo en la búsqueda del recurso y la plantilla del informe.

Obtendremos una lista de todos los recursos en los que se ha creado la plantilla del informe con el nombre Lista de viajes, disponible para el usuario autorizado por token. Usamos la solicitud core/search_items:

https://hst-api.wialon.com/wialon/ajax.html?svc=core/search_items¶ms={"spec":{"itemsType":"avl_resource","propType":"propitemname","propName":"reporttemplates","propValueMask":"Lista%20de%20viajes","sortType":"sys_name"},"force":1,"flags":8193,"from":0,"to":0}&sid=SESSION_IDENTIFIER
Parámetro y su valorDescripción
"itemsType":"avl_resource"La búsqueda se realizará por recursos.
"propType":"propitemname"La búsqueda se realizará por el nombre del subelemento.
"propName":"reporttemplates"La búsqueda se realizará por el nombre de la plantilla del informe.
"propValueMask":"Lista%20de%20viajes"La respuesta mostrará una lista de recursos en los que se ha creado la plantilla del informe con el nombre Lista de viajes.
"sortType":"sys_name"La clasificación se realizará por el nombre del elemento.
"force":1Los resultados de búsquedas anteriores no se tendrán en cuenta.
"flags":8193

La respuesta contendrá información sobre las propiedades básicas y las plantillas de informes creadas.

1 + 8192 = 8193

"from":0;"to":0No se aplicarán restricciones en la cantidad de elementos encontrados.
 Respuesta
{
	"searchSpec":{
		"itemsType":"avl_resource",
		"propName":"reporttemplates",
		"propValueMask":"Lista de viajes",
		"sortType":"sys_name",
		propType:"propitemname",
		or_logic:"0"
		},
	"dataFlags":8193,
	"totalItemsCount":1,
	"indexFrom":0,
	"indexTo":0,
	"items":[
		{
			"nm":"sdk_account",
			"cls":3,
			"id":12345678,
			"mu":0,
			"rep":{
				1:{
					"id":1,
					"n":"Lista de viajes",
					"ct":"avl_unit",
					"c":59352
				},
				2:{
					"id":2,
					"n":"Viajes con agrupación",
					"ct":"avl_unit",
					"c":6883
				}
			},
			"repmax":-1,
			"uacl":-1
		}
	]
}

Prestemos atención a los siguientes parámetros de la respuesta:

  • nm: nombre del recurso;
  • rep: array de plantillas de informes creadas en el recurso;

    Si este parámetro aparece vacío, significa que no se han creado plantillas de informes en el recurso.

  • n: nombre del subelemento;
  • id: ID del sistema.

En este caso, el usuario tiene acceso al recurso sdk_account con el ID del sistema 12345678, en el que se encuentra la plantilla del informe Lista de viajes con el ID del sistema 1.

3. Ejecución del informe

Usamos la solicitud report/exec_report.

https://hst-api.wialon.com/wialon/ajax.html?svc=report/exec_report¶ms={"reportResourceId":12345678,"reportTemplateId":1,"reportObjectId":55555,"reportObjectSecId":0,"interval":{"flags":0,"from":1688144400,"to":1688173199},"remoteExec":1}&sid=SESSION_IDENTIFIER
Parámetro y su valorDescripción
"reportResourceId":12345678La plantilla del informe se seleccionará del recurso con el ID del sistema 12345678.
"reportTemplateId":1Se ejecutará la plantilla del informe con el ID del sistema 1.
"reportObjectId":55555El informe se ejecutará para la unidad con el ID del sistema 55555.
"reportObjectSecId":0El informe no se ejecutará para un subelemento.
"flags":0El informe se ejecutará para el intervalo especificado.
"from":1688144400

El inicio del intervalo será el 30 de junio de 2023 a las 20:00 (GMT+0).

En las solicitudes se utiliza el tiempo Unix. Para convertir la fecha y hora a tiempo Unix, se pueden usar herramientas en línea de acceso público.

"to":1688173199El final del intervalo será el 1 de julio de 2023 a las 03:59 (GMT+0).
"remoteExec":1El informe se ejecutará en segundo plano en el servidor.
 Respuesta
{
	"remoteExec":1
}

4. Verificación del estado de ejecución

Dado que el informe se ejecuta en segundo plano en el servidor, verificamos el estado de su ejecución utilizando la solicitud report/get_report_status.

https://hst-api.wialon.com/wialon/ajax.html?svc=report/get_report_status¶ms={}&sid=SESSION_IDENTIFIER
 Respuesta
{
	"status":4
}

El código de estado 4 significa que el informe se ha completado. La interpretación de los demás valores se puede encontrar en la página con la descripción de la solicitud.

5. Obtención del resultado del informe

Usamos la solicitud report/apply_report_result.

https://hst-api.wialon.com/wialon/ajax.html?svc=report/apply_report_result¶ms={}&sid=SESSION_IDENTIFIER
 Respuesta
{
	"reportResult":{
		"msgsRendered":0,
		"stats":[],
		"tables":[
			{
				"name":"unit_trips",
				"label":"Viajes",
				"grouping":{},
				"flags":4224,
				"rows":4,
				"level":1,
				"columns":5,
				"header":[
					"№",
					"Comienzo",
					"Fin",
					"Duración",
					"Kilometraje"
				],
				"header_type":[
					"",
					"time_begin",
					"time_end",
					"duration",
					"mileage"
				]
			}
		],
		"attachments":[]
	}
}

Tres parámetros clave de la respuesta que nos interesan son los siguientes:

  • tables: muestra la cantidad de tablas en el informe en forma de array. En este caso, solo se menciona una tabla: Viajes, por lo que su índice será 0.
  • rows: cantidad de filas en la tabla, en este caso son 4. Por lo tanto, sus índices están en el rango de 0 a 3.
  • level: cantidad de niveles de anidamiento, en este caso es 1, ya que el informe no tiene agrupación.

Los índices de tablas, filas, columnas y niveles de anidamiento comienzan desde 0. Esto debe tenerse en cuenta al referirse a ellos posteriormente.

También se pueden enumerar brevemente otros parámetros de la respuesta. El parámetro columns indica la cantidad de columnas, luego sus nombres se describen en el parámetro header. El valor cero del parámetro msgsRendered indica que en la plantilla del informe no se incluye la visualización de mensajes en el mapa. Los parámetros vacíos stats y attachments indican que en la plantilla del informe no hay Estadísticas ni adjuntos (por ejemplo, gráficas).

6. Obtención de las filas de la tabla

Conociendo el índice del contenido de la tabla, la mostramos utilizando la solicitud report/get_result_rows.

https://hst-api.wialon.com/wialon/ajax.html?svc=report/get_result_rows¶ms={"tableIndex":0,"indexFrom":0,"indexTo":3}&sid=SESSION_IDENTIFIER
Parámetro y su valorDescripción
"tableIndex":0

Se mostrará el contenido de la tabla con el índice 0.

"indexFrom":0

La primera fila mostrada tendrá el índice 0.

"indexTo":3La última fila mostrada tendrá el índice 3.
 Respuesta
[
	{
		"n":0,
		"i1":0,
		"i2":790,
		"t1":1688144420,
		"t2":1688154878,
		"d":0,
		"c":[
			"1",
			{
				"t":"2023-06-30 20:00:20",
				"v":1688144420,
				"y":47.2941741943,
				"x":26.4906959534,
				"u":55555
			},
			{
				"t":"2023-06-30 22:54:38",
				"v":1688154878,
				"y":43.8697662354,
				"x":26.0177116394,
				"u":55555
			},
			"2:54:18",
			"469.54 km"
		]
	},
	{
		"n":1,
		"i1":936,
		"i2":2171,
		"t1":1688155181,
		"t2":1688169690,
		"d":0,
		"c":[
			"2",
			{
				"t":"2023-06-30 22:59:41",
				"v":1688155181,
				"y":43.8698196411,
				"x":26.0177154541,
				"u":55555
			},
			{
				"t":"2023-07-01 03:01:30",
				"v":1688169690,
				"y":41.7139854431,
				"x":26.3660545349,
				"u":55555
			},
			"4:01:49",
			"343.84 km"
		]
	},
	{
		"n":2,
		"i1":2340,
		"i2":2486,
		"t1":1688170034,
		"t2":1688170841,
		"d":0,
		"c":[
			"3",
			{
				"t":"2023-07-01 03:07:14",
				"v":1688170034,
				"y":41.7140579224,
				"x":26.365901947,
				"u":55555
			},
			{
				"t":"2023-05-01 09:23:10",
				"v":1688170841,
				"y":41.7122383118,
				"x":26.3712425232,
				"u":55555
			},
			"0:13:27",
			"1.39 km"
		]
	},
	{
		"n":3,
		"i1":2833,
		"i2":2910,
		"t1":1688171565,
		"t2":1688173175,
		"d":0,
		"c":[
			"4",
			{
				"t":"2023-07-01 03:32:45",
				"v":1688171565,
				"y":41.7120819092,
				"x":26.3711204529,
				"u":55555
			},
			{
				"t":"2023-07-01 03:59:35",
				"v":1688173175,
				"y":41.5760040283,
				"x":26.9871864319,
				"u":55555
			},
			"0:26:50",
			"57.84 km"
		]
	}
]

7. Exportación a archivo

Exportamos el resultado a un archivo PDF utilizando la solicitud report/export_result.

https://hst-api.wialon.com/wialon/ajax.html?svc=report/export_result¶ms={"format":2,"compress":0,"outputFileName":"Lista%20de%20viajes"}&sid=SESSION_IDENTIFIER
Parámetro y su valorDescripción
"format":2El resultado del informe se exportará en formato PDF.
"compress":0El archivo exportado no se comprimirá (no se añadirá a un archivo).
"outputFileName":"Lista%20de%20viajes"El archivo exportado tendrá el nombre Lista de viajes.

La respuesta a esta solicitud API no se muestra, en su lugar, la descarga del archivo comienza automáticamente.

8. Eliminación del resultado del informe anterior

Usamos la solicitud report/cleanup_result.

https://hst-api.wialon.com/wialon/ajax.html?svc=report/cleanup_result¶ms={}&sid=SESSION_IDENTIFIER
 Respuesta
{
	"error":0
}

Un valor de cero significa que la eliminación fue exitosa.

Trabajo con un informe con agrupación

Es necesario obtener los resultados de la ejecución del informe Viajes con agrupación, disponible para el usuario autorizado por token, para la unidad Truck 0769 (ID del sistema 55555) para el intervalo de tiempo del 30 de junio de 2023 a las 20:00 al 1 de julio de 2023 a las 03:59 (GMT+0) en forma de respuesta a la solicitud API y archivo PDF.

En la interfaz web, el resultado se ve de la siguiente manera:

El resultado de la ejecución en la interfaz web muestra que la tabla Viajes tiene una agrupación por meses y fechas, es decir, el informe tiene 3 niveles de anidamiento:

  • En el primer nivel se encuentran las filas con los meses;
  • En el segundo nivel, las filas con las fechas dentro del mes;
  • En el tercer nivel, las filas con los viajes dentro de la fecha.

1. Autorización y configuración de la localización

Usamos la solicitud token/login.

https://hst-api.wialon.com/wialon/ajax.html?svc=token/login¶ms={"token":"TOKEN_VALUE"}

La autorización se describe con más detalle en uno de los artículos anteriores.

La configuración de la localización incluye la configuración de la zona horaria (también se consideró anteriormente), el formato de la fecha y otros parámetros.

Si la configuración de la zona horaria se realiza dentro de la sesión, al ejecutar el informe, el tiempo se establece en GMT+0.

Usamos la solicitud render/set_locale.

https://hst-api.wialon.com/wialon/ajax.html?svc=render/set_locale¶ms={"tzOffset":134217728,"language":"es","formatDate":"%25E.%25m.%25Y%20%25H:%25M:%25S"}&sid=SESSION_IDENTIFIER
Parámetro y su valorDescripción
"tzOffset":134217728Se aplicará la zona horaria GMT+0 (sin horario de verano).
"language":"es"Se utilizará el idioma español.
"formatDate":"%25Y.%25m.%25E%20%25H:%25M:%25S"Se utilizará el formato de fecha yyyy-MM-dd y el formato de hora HH:mm:ss.

No realizar la configuración de la localización puede llevar a diferencias en los resultados al ejecutar el informe mediante el Remote API y la interfaz web.

2. Obtención de los ID del sistema

En uno de los artículos anteriores ya describimos cómo realizar la búsqueda de elementos por criterios, por lo que ahora nos centraremos solo en la búsqueda del recurso y la plantilla del informe.

Obtendremos una lista de todos los recursos en los que se ha creado la plantilla del informe con el nombre Viajes con agrupación, disponible para el usuario autorizado por token. Usamos la solicitud core/search_items:

https://hst-api.wialon.com/wialon/ajax.html?svc=core/search_items¶ms={"spec":{"itemsType":"avl_resource","propType":"propitemname","propName":"reporttemplates","propValueMask":"Viajes%20con%20agrupación","sortType":"sys_name"},"force":1,"flags":8193,"from":0,"to":0}&sid=SESSION_IDENTIFIER
Parámetro y su valorDescripción
"itemsType":"avl_resource"La búsqueda se realizará por recursos.
"propType":"propitemname"La búsqueda se realizará por el nombre del subelemento.
"propName":"reporttemplates"La búsqueda se realizará por el nombre de la plantilla del informe.
"propValueMask":"Viajes%20con%20agrupación"La respuesta mostrará una lista de recursos en los que se ha creado la plantilla del informe con el nombre Viajes con agrupación.
"sortType":"sys_name"La clasificación se realizará por el nombre del elemento.
"force":1Los resultados de búsquedas anteriores no se tendrán en cuenta.
"flags":8193

La respuesta contendrá información sobre las propiedades básicas y las plantillas de informes creadas.

1 + 8192 = 8193

"from":0;"to":0No se aplicarán restricciones en la cantidad de elementos encontrados.
 Respuesta
{
	"searchSpec":{
		"itemsType":"avl_resource",
		"propName":"reporttemplates",
		"propValueMask":"Viajes con agrupación",
		"sortType":"sys_name",
		propType:"propitemname",
		or_logic:"0"
		},
	"dataFlags":8193,
	"totalItemsCount":1,
	"indexFrom":0,
	"indexTo":0,
	"items":[
		{
			"nm":"sdk_account",
			"cls":3,
			"id":12345678,
			"mu":0,
			"rep":{
				1:{
					"id":1,
					"n":"Lista de viajes",
					"ct":"avl_unit",
					"c":59352
				},
				2:{
					"id":2,
					"n":"Viajes con agrupación",
					"ct":"avl_unit",
					"c":6883
				}
			},
			"repmax":-1,
			"uacl":-1
		}
	]
}

Prestemos atención a los siguientes parámetros de la respuesta:

  • nm: nombre del recurso;
  • rep: array de plantillas de informes creadas en el recurso;

    Si este parámetro aparece vacío, significa que no se han creado plantillas de informes en el recurso.

  • n: nombre del subelemento;
  • id: ID del sistema.

En este caso, el usuario tiene acceso al recurso sdk_account con el ID del sistema 12345678, en el que se encuentra la plantilla del informe Viajes con agrupación con el ID del sistema 2.

3. Ejecución del informe

Usamos la solicitud report/exec_report.

https://hst-api.wialon.com/wialon/ajax.html?svc=report/exec_report¶ms={"reportResourceId":12345678,"reportTemplateId":2,"reportObjectId":55555,"reportObjectSecId":0,"interval":{"flags":0,"from":1688144400,"to":1688173199},"remoteExec":1}&sid=SESSION_IDENTIFIER
Parámetro y su valorDescripción
"reportResourceId":12345678La plantilla del informe se seleccionará del recurso con el ID del sistema 12345678.
"reportTemplateId":2Se ejecutará la plantilla del informe con el ID del sistema 2.
"reportObjectId":55555El informe se ejecutará para la unidad con el ID del sistema 55555.
"reportObjectSecId":0El informe no se ejecutará para un subelemento.
"flags":0El informe se ejecutará para el intervalo especificado.
"from":1688144400

El inicio del intervalo será el 30 de junio de 2023 a las 20:00 (GMT+0).

En las solicitudes se utiliza el tiempo Unix. Para convertir la fecha y hora a tiempo Unix, se pueden usar herramientas en línea de acceso público.

"to":1688173199El final del intervalo será el 1 de julio de 2023 a las 03:59 (GMT+0).
"remoteExec":1El informe se ejecutará en segundo plano en el servidor.
 Respuesta
{
	"remoteExec":1
}

4. Verificación del estado de ejecución

Dado que el informe se ejecuta en segundo plano en el servidor, verificamos el estado de su ejecución utilizando la solicitud report/get_report_status.

https://hst-api.wialon.com/wialon/ajax.html?svc=report/get_report_status¶ms={}&sid=SESSION_IDENTIFIER
 Respuesta
{
	"status":4
}

El código de estado 4 significa que el informe se ha completado. La interpretación de los demás valores se puede encontrar en la página con la descripción de la solicitud.

5. Obtención del resultado del informe

Usamos la solicitud report/apply_report_result.

https://hst-api.wialon.com/wialon/ajax.html?svc=report/apply_report_result¶ms={}&sid=SESSION_IDENTIFIER
 Respuesta
{
	"reportResult":{
		"msgsRendered":0,
		"stats":[],
		"tables":[
			{
				"name":"unit_trips",
				"label":"Viajes",
				"grouping":{
					"nested":{
						"type":"day"
					},
					"type":"month"
				},
				"flags":4491,
				"rows":2,
				"level":3,
				"columns":6,
				"header":[
					"№",
					"Agrupación",
					"Comienzo",
					"Fin",
					"Duración",
					"Kilometraje"
				],
				"header_type":[
					"",
					"",
					"time_begin",
					"time_end",
					"duration",
					"mileage"
				]
			}
		],
		"attachments":[]
	}
}

Tres parámetros clave de la respuesta que nos interesan son los siguientes:

  • tables: muestra la cantidad de tablas en el informe en forma de array. En este caso, solo se menciona una tabla: Viajes, por lo que su índice será 0.
  • rows: cantidad de filas en la tabla, en este caso son 2. Por lo tanto, sus índices están en el rango de 0 a 1. Se refiere solo a las filas en el nivel superior de anidamiento, dentro de ellas puede haber más.
  • level: cantidad de niveles de anidamiento, en este caso es 3, ya que el informe tiene agrupación. Por lo tanto, en la tabla existen niveles con índices de 0 a 2.

Los índices de tablas, filas, columnas y niveles de anidamiento comienzan desde 0. Esto debe tenerse en cuenta al referirse a ellos posteriormente.

También se pueden enumerar brevemente otros parámetros de la respuesta. El parámetro columns indica la cantidad de columnas, luego sus nombres se describen en el parámetro header. El valor cero del parámetro msgsRendered indica que en la plantilla del informe no se incluye la visualización de mensajes en el mapa. Los parámetros vacíos stats y attachments indican que en la plantilla del informe no hay Estadísticas ni adjuntos (por ejemplo, gráficas).

6. Selección de filas en una tabla multinivel

Conociendo el índice del contenido de la tabla, la mostramos utilizando la solicitud report/select_result_rows.

https://hst-api.wialon.com/wialon/ajax.html?svc=report/select_result_rows¶ms={"tableIndex":0,"config":{"type":"range","data":{"from":0,"to":1,"level":2}}}&sid=SESSION_IDENTIFIER
Parámetro y su valorDescripción
"tableIndex":0Se mostrará el contenido de la tabla con el índice 0.
"type":"range"Se solicitará una secuencia de filas.
"from":0La primera fila mostrada tendrá el índice 0.
"to":1La última fila mostrada tendrá el índice 1.
"level":2El resultado mostrará niveles de anidamiento hasta el índice 2.
 Respuesta
[
	{
		"n":0,
		"i1":0,
		"i2":1188,
		"t1":1688144420,
		"t2":1688158739,
		"d":1,
		"c":[
			"1",
			"June",
			{
				"t":"20:00:20",
				"v":1688144420,
				"y":47.2941741943,
				"x":26.4906959534,
				"u":55555
			},
			{
				"t":"23:58:59",
				"v":1688158739,
				"y":43.1049079895,
				"x":25.6173667908,
				"u":55555
			},
			"3:53:36",
			"576.60 km"
		],
		"r":[
			{
				"n":0,
				"i1":0,
				"i2":1188,
				"t1":1688144420,
				"t2":1688158739,
				"d":2,
				"c":[
					"1.1",
					"2023-06-30",
					{
						"t":"20:00:20",
						"v":1688144420,
						"y":47.2941741943,
						"x":26.4906959534,
						"u":55555
					},
					{
						"t":"23:58:59",
						"v":1688158739,
						"y":43.1049079895,
						"x":25.6173667908,
						"u":55555
					},
					"3:53:36",
					"576.60 km"
				],
				"r":[
					{
						"n":0,
						"i1":0,
						"i2":790,
						"t1":1688144420,
						"t2":1688154878,
						"d":0,
						"c":[
							"1.1.1",
							"2023-06-30 20:00:20",
							{
								"t":"20:00:20",
								"v":1688144420,
								"y":47.2941741943,
								"x":26.4906959534,
								"u":55555
							},
							{
								"t":"22:54:38",
								"v":1688154878,
								"y":43.8697662354,
								"x":26.0177116394,
								"u":55555
							},
							"2:54:18",
							"469.54 km"
						]
					},
					{
						"n":1,
						"i1":936,
						"i2":1188,
						"t1":1688155181,
						"t2":1688158739,
						"d":0,
						"c":[
							"1.1.2",
							"2023-06-30 22:59:41",
							{
								"t":"22:59:41",
								"v":1688155181,
								"y":43.8698196411,
								"x":26.0177154541,
								"u":55555
							},
							{
								"t":"23:58:59",
								"v":1688158739,
								"y":43.1049079895,
								"x":25.6173667908,
								"u":55555
							},
							"0:59:18",
							"107.06 km"
						]
					}
				]
			}
		]
	},
	{
		"n":1,
		"i1":1193,
		"i2":2910,
		"t1":1688158805,
		"t2":1688173175,
		"d":1,
		"c":[
			"2",
			"July",
				{
					"t":"00:00:05",
					"v":1688158805,
					"y":43.0983314514,
					"x":25.6316585541,
					"u":55555
				},
				{
					"t":"03:59:35",
					"v":1688173175,
					"y":41.5760040283,
					"x":26.9871864319,
					"u":55555
				},
				"3:41:42",
				"294.55 km"
		],
		"r":[
			{
				"n":0,
				"i1":1193,
				"i2":2910,
				"t1":1688158805,
				"t2":1688173175,
				"d":3,
				"c":[
					"2.1",
					"2023-07-01",
					{
						"t":"00:00:05",
						"v":1688158805,
						"y":43.0983314514,
						"x":25.6316585541,
						"u":55555
					},
					{
						"t":"03:59:35",
						"v":1688173175,
						"y":41.5760040283,
						"x":26.9871864319,
						"u":55555
					},
					"3:41:42",
					"294.55 km"
				],
				"r":[
					{
						"n":0,
						"i1":1193,
						"i2":2171,
						"t1":1688158805,
						"t2":1688169690,
						"d":0,
						"c":[
							"2.1.1",
							"2023-07-01 00:00:05",
							{
								"t":"00:00:05",
								"v":1688158805,
								"y":43.0983314514,
								"x":25.6316585541,
								"u":55555
							},
							{
								"t":"03:01:30",
								"v":1688169690,
								"y":41.7139854431,
								"x":26.3660545349,
								"u":55555
							},
							"3:01:25",
							"235.31 km"
						]
					},
					{
						"n":1,
						"i1":2340,
						"i2":2486,
						"t1":1688170034,
						"t2":1688170841,
						"d":0,
						"c":[
							"2.1.2",
							"2023-07-01 03:07:14",
							{
								"t":"03:07:14",
								"v":1688170034,
								"y":41.7140579224,
								"x":26.365901947,
								"u":55555
							},
							{
								"t":"03:20:41",
								"v":1688170841,
								"y":41.7122383118,
								"x":26.3712425232,
								"u":55555
							},
							"0:13:27",
							"1.39 km"
						]
					},
					{
						"n":2,
						"i1":2833,
						"i2":2910,
						"t1":1688171565,
						"t2":1688173175,
						"d":0,
						"c":[
							"2.1.3",
							"2023-07-01 03:32:45",
							{
								"t":"03:32:45",
								"v":1688171565,
								"y":41.7120819092,
								"x":26.3711204529,
								"u":55555
							},
							{
								"t":"03:59:35",
								"v":1688173175,
								"y":41.5760040283,
								"x":26.9871864319,
								"u":55555
							},
							"0:26:50",
							"57.84 km"
						]
					}
				]
			}
		]
	}
]

7. Exportación a archivo

Exportamos el resultado a un archivo PDF utilizando la solicitud report/export_result.

https://hst-api.wialon.com/wialon/ajax.html?svc=report/export_result¶ms={"format":2,"compress":0,"outputFileName":"Viajes%20con%20agrupación"}&sid=SESSION_IDENTIFIER
Parámetro y su valorDescripción
"format":2El resultado del informe se exportará en formato PDF.
"compress":0El archivo exportado no se comprimirá (no se añadirá a un archivo).
"outputFileName":"Grouped%20trips"El archivo exportado tendrá el nombre Viajes con agrupación.

La respuesta a esta solicitud API no se muestra, en su lugar, la descarga del archivo comienza automáticamente.

8. Eliminación del resultado del informe anterior

Usamos la solicitud report/cleanup_result:

https://hst-api.wialon.com/wialon/ajax.html?svc=report/cleanup_result¶ms={}&sid=SESSION_IDENTIFIER
 Respuesta
{
	"error":0
}

Un valor de cero significa que la eliminación fue exitosa.

Características de la obtención de resultados

La obtención de datos de las tablas se puede realizar mediante las solicitudes report/get_result_rows o report/select_result_rows, en las que se utiliza el parámetro tableIndex para referirse a la tabla con un índice determinado. Es necesario tener en cuenta que al ejecutar el informe para diferentes intervalos, el índice de una misma tabla puede cambiar debido a la presencia o ausencia de otras tablas.

Para una mejor comprensión de la situación, consideremos un ejemplo. Supongamos que en la plantilla del informe se han añadido las tablas Viajes, Descargas de combustible y Geocercas. Al ejecutar el informe para el intervalo del 1 al 3 de julio, el resultado contendrá todas las tablas, por lo que sus índices serán los siguientes:

0 — Viajes
1 — Descargas de combustible
2 — Geocercas

Y al ejecutar el informe para el intervalo del 4 al 6 de julio, los índices de algunas tablas cambiarán debido a la ausencia de descargas registradas y tomarán otros valores:

0 — Viajes
1 — Geocercas

En este ejemplo, se puede ver claramente que al ejecutar el informe para diferentes intervalos, el índice de la tabla Geocercas cambia. Por lo tanto, referirse a la tabla con el índice 2 no siempre mostrará información sobre la visita a geocercas. Para corregir situaciones como esta, se recomienda aplicar verificaciones adicionales, por ejemplo, por el nombre de la tabla o sus columnas.

Al utilizar un informe por grupo de unidades, se pueden evitar verificaciones adicionales desactivando la opción Omitir filas vacías en los ajustes de la plantilla del informe. En este caso, las tablas se mostrarán incluso si no contienen datos y tendrán filas vacías.

Ekaterina Grib,Customer Service Engineer

Introducción al SDK: FAQ
  • technical_consulting

En este artículo se recopilan respuestas a las preguntas más frecuentes sobre el Remote API.

También pueden ser útiles:

  • Artículo Introducción al SDK: solicitudes básicas.
  • Artículo Introducción al SDK: creación de cuentas y unidades.
  • Artículo Introducción al SDK: ejecución de informes.
  • Portal para desarrolladores (en inglés) con documentación y descripción detallada de cada solicitud.
  • Ejemplos de códigos (en inglés) para trabajar con informes.
  • Ejemplos de soluciones listas utilizando el SDK en la sección Marketplace.
  • Serie de webinars Wialon API and SDK: how-to videos (en inglés).
  • Colección de ejemplos (en inglés) en la aplicación Postman para probar solicitudes API.
  • Sección del foro Custom SDK development.

¿Existen limitaciones en el uso del API?

Las limitaciones globales están descritas en la documentación. Generalmente, alcanzar estas limitaciones indica que la aplicación desarrollada no está optimizada para trabajar con el API. Por ejemplo, realiza múltiples solicitudes de autorización en lugar de mantener una sesión activa.

También existen limitaciones en algunas solicitudes, mencionadas en la descripción de la solicitud en la documentación. Por ejemplo, solo se puede ejecutar un informe a la vez en una sesión. Si en la sesión hay resultados de un informe anterior, deben eliminarse con la solicitud report/cleanup_result antes de ejecutar el siguiente informe. Además, la solicitud para ejecutar informes no puede realizarse simultáneamente con algunas otras solicitudes.

¿Es posible organizar la transmisión de datos en tiempo real desde Wialon mediante el API?

No. Las solicitudes API funcionan bajo el principio de "solicitud-respuesta". Es decir, los datos en el lado receptor no se actualizarán sin enviar una solicitud.

Si es necesario recibir datos del equipo a medida que llegan nuevos mensajes, se pueden utilizar repetidores.

¿Cómo crear un localizador mediante el API?

Consideremos un ejemplo: es necesario crear un localizador con tiempo de vida ilimitado, que muestre unidades con ID del sistema 11111111 y 22222222, así como geocercas del recurso con ID del sistema 12345678, pero que no muestre los recorridos de las unidades.

Para ello, se debe usar la solicitud token/update:

https://hst-api.wialon.com/wialon/ajax.html?svc=token/update¶ms=
{"callMode":"create","app":"locator","at":0,"dur":0,"fl":256,"p":"{\"note\":\"Bus\",\"zones\":1,\"tracks\":0}","items":[11111111,22222222,12345678]}&sid=SESSION_IDENTIFIER
Parámetro y su valorDescripción
"callMode":"create"Se selecciona la acción de creación (también están disponibles edición y eliminación).
"app":"locator"El valor locator es necesario para mostrarlo en la lista de enlaces en la interfaz web.
"at":0El tiempo de activación del token en UNIX-time es 0, es decir, el localizador comenzará a funcionar inmediatamente después de su creación.
"dur":0El tiempo de vida del token después de la activación es 0, es decir, su tiempo de vida será infinito.
"fl":256Este valor de los flags de acceso permitirá solo rastrear unidades en línea.
"p":"{\"note\":\"Bus\",\"zones\":1,\"tracks\":0}"La palabra Bus se usará como una nota, lo que permitirá distinguir el localizador de otros en la lista general. El localizador mostrará geocercas, pero no mostrará los recorridos de las unidades.
"items":[11111111,22222222,12345678]El localizador mostrará unidades con ID del sistema 11111111 y 22222222, así como geocercas del recurso con ID del sistema 12345678.

En la respuesta a la solicitud estará presente el parámetro h, que contiene el valor del token. Para obtener el enlace deseado, es necesario insertar el valor del token en el enlace: 
https://hosting.wialon.com/locator/index.html?t=TOKEN_VALUE

¿Cómo obtener un token con acceso máximo y sin límite de tiempo de vida?

Si la creación del token se realiza a través del formulario extendido, se deben usar los parámetros access_type=-1 y duration=0. Por ejemplo:

https://hosting.wialon.com/login.html?client_id=APP_NAME&access_type=256&activation_time=0&duration=0&lang=en&flags=0&user=USER_NAME

Si la creación del token se realiza mediante la solicitud token/update, se deben usar los parámetros fl=-1 y dur=0. Por ejemplo:

https://hst-api.wialon.com/wialon/ajax.html?svc=token/update¶ms=
{"callMode":"create","app":"Wialon Hosting","at":0,"dur":0,"fl":-1,"p":"{}"}&sid=SESSION_IDENTIFIER

El token se elimina automáticamente si no se utiliza durante 100 días, incluso si su tiempo de vida no está limitado (el parámetro duration o dur es 0).

¿Por qué al usar un token sin límite de tiempo puede devolver un error con el código 1?

El error con el código 1 indica que la sesión actual no es válida. El tiempo de vida del token no está directamente relacionado con la sesión.

Para solucionar la situación, es necesario realizar nuevamente la autorización. En la respuesta al inicio de sesión con el token, se incluirá el parámetro eid, cuyo valor es el identificador único de la sesión. Luego se utilizará en casi todas las solicitudes API.

Si en el transcurso de 5 minutos no se realiza ninguna solicitud dentro de la sesión, esta se vuelve inactiva. Para mantener la sesión, puede enviar la solicitud avl_evts cada 5 minutos.

¿Cómo corregir el error con el código 4?

El error con el código 4 corresponde a una entrada incorrecta, lo que puede significar:

  • Tipo de datos incorrecto (numérico, texto, etc.);
  • Nombres de parámetros incorrectos;
  • Separadores incorrectos (comas, comillas, espacios, paréntesis, etc.);
  • Falta de codificación para la transmisión en la URL.

Consideremos un ejemplo de solicitud con todos los errores mencionados:

https://hst-api.wialon.com/wialon/ajax.html?svc=report/export_result¶ms={"format":"2";"compres":0;"outputFileName":"List of trips"}&sid=SESSION_IDENTIFIER

En este ejemplo se cometieron los siguientes errores:

  • El parámetro format debe contener un número, pero como su valor está entre comillas, se interpreta como texto;
  • En lugar del parámetro con el nombre compress se utilizó el parámetro con el nombre compres ;
  • Para separar los parámetros se utilizó un punto y coma en lugar de una coma ;
  • El carácter de espacio no fue codificado para la transmisión en la URL.

Para verificar la codificación en la URL, se pueden usar herramientas en línea de acceso público.

La solicitud correcta se verá de la siguiente manera:

https://hst-api.wialon.com/wialon/ajax.html?svc=report/export_result¶ms={"format":2,"compress":0,"outputFileName":"List%20of%20trips"}&sid=SESSION_IDENTIFIER

¿Por qué al usar IDs únicos de unidades se produce un error con el código 7?

En las solicitudes API no se utilizan los IDs únicos de las unidades de la pestaña Básicas, sino los IDs del sistema internos de los elementos. Por defecto, no se muestran en las interfaces web.

Para obtener los IDs del sistema de los elementos, se puede usar la solicitud de búsqueda de elementos por criterios (core/search_items). En la respuesta a esta solicitud, el parámetro id contendrá el valor buscado.

Otros métodos para mostrar los IDs del sistema se describen en el artículo Introducción al SDK: solicitudes básicas.

¿Por qué el acceso a un elemento está restringido, aunque el usuario tiene todos los derechos

Probablemente, el problema se debe a la falta de derechos en el token utilizado.

Para verificar los derechos del token, realice el inicio de sesión con él token:

https://hst-api.wialon.com/wialon/ajax.html?svc=token/login¶ms={"token":"TOKEN_VALUE"}

En la respuesta se incluirá el parámetro fl, que muestra los derechos actuales del token. Para cambiarlos, edite el token actual o cree uno nuevo.

Para otorgar diferentes derechos, los flags deben sumarse entre sí.

Por ejemplo, si es necesario otorgar el derecho de rastreo en línea ("fl":256) y acceso de ver la mayor parte de la información ("fl":512), se debe usar el valor "fl":768, ya que 256 + 512 = 768.

¿Cómo obtener las últimas coordenadas de las unidades?

Para obtener las últimas coordenadas de varias unidades, se puede usar la solicitud de búsqueda de elementos por criterios (core/search_items). Es necesario especificar los flags de acceso, según los cuales en la respuesta se mostrarán los nombres de las unidades ("flag":1) y la información sobre la última ubicación de las unidades ("flag":1024). Los flags se pueden sumar entre sí, por lo que en la solicitud se usará el valor 1 + 1024 = 1025.

https://hst-api.wialon.com/wialon/ajax.html?svc=core/search_items¶ms={"spec":{"itemsType":"avl_unit","propName":"sys_name","propValueMask":"*","sortType":"sys_name"},"force":1,"flags":1025,"from":0,"to":0}&sid=SESSION_IDENTIFIER

¿Cómo obtener una lista de todas las unidades disponibles para el usuario?

Para mostrar todas las unidades disponibles para el usuario, se puede usar la solicitud de búsqueda de elementos por criterios (core/search_items) con el valor "propValueMask":"*".

https://hst-api.wialon.com/wialon/ajax.html?svc=core/search_items¶ms={"spec":{"itemsType":"avl_unit","propName":"sys_name","propValueMask":"*","sortType":"sys_name"},"force":1,"flags":1,"from":0,"to":0}&sid=SESSION_IDENTIFIER

En la respuesta se devolverá una lista de unidades disponibles para el usuario cuyo identificador de sesión se utilizó en la solicitud.

¿Cómo obtener los nombres de los grupos a los que pertenece una unidad específica?

Para obtener los nombres de los grupos a los que pertenece una unidad con el ID del sistema 11112222, se debe usar la solicitud de búsqueda de elementos por criterios (core/search_items) con los valores "itemsType":"avl_unit_group", "propName":"sys_units" y "propType":"list".

https://hst-api.wialon.com/wialon/ajax.html?svc=core/search_items¶ms={"spec":{"itemsType":"avl_unit_group","propName":"sys_units","propValueMask":11112222,"sortType":"sys_name","propType":"list"},"force":1,"flags":1,"from":0,"to":0}}&sid=SESSION_IDENTIFIER

¿Cómo obtener los nombres de las unidades de un grupo específico?

Para obtener los nombres de las unidades que pertenecen a un grupo con el nombre Group, se deben usar dos solicitudes de búsqueda de elementos por criterios (core/search_items): la primera buscará por el grupo de unidades (avl_unit_group) y la segunda por la unidad (avl_unit).

  1. Primero, se debe obtener una lista de los IDs del sistema de las unidades que pertenecen al grupo (su nombre debe especificarse en el parámetro propValueMask):

    https://hst-api.wialon.com/wialon/ajax.html?svc=core/search_items¶ms={"spec":{"itemsType":"avl_unit_group","propName":"sys_name","propValueMask":"Group","sortType":"sys_name"},"force":1,"flags":1,"from":0,"to":0}&sid=SESSION_IDENTIFIER
     Respuesta
    {
    	"searchSpec":{
    		"itemsType":"avl_unit_group",
    		"propName":"sys_name",
    		"propValueMask":"Group",
    		"sortType":"sys_name",
    		"propType":"",
    		"or_logic":"0"
    	},
    	"dataFlags":1,
    	"totalItemsCount":1,
    	"indexFrom":0,
    	"indexTo":0,
    	"items":[
    		{
    			"nm":"Group",
    			"cls":5,
    			"id":10000000,
    			"mu":0,
    			"u":[
    				20000001,
    				20000002,
    				20000003
    			],
    			"uacl":-1
    		}
    	]
    }
    
  2. En la respuesta a la solicitud anterior, se debe encontrar el parámetro u con los IDs del sistema de las unidades. Estos deben insertarse en el parámetro propValueMask para la siguiente solicitud de búsqueda:

    https://hst-api.wialon.com/wialon/ajax.html?svc=core/search_items¶ms={"spec":{"itemsType":"avl_unit","propName":"sys_id","propValueMask":"20000001,20000002,20000003","sortType":"sys_name"},"force":1,"flags":1,"from":0,"to":0}&sid=SESSION_IDENTIFIER
     Respuesta
    {
    	searchSpec:{
    		itemsType:"avl_unit",
    		propName:"sys_id",
    		propValueMask:"20000001,20000002,20000003",
    		sortType:"sys_name",
    		propType:"",
    		or_logic:"0"
    	},
    	dataFlags:1,
    	totalItemsCount:3,
    	indexFrom:0,
    	indexTo:0,
    	items:[
    		{
    			nm:"Unit_1",
    			cls:2,
    			id:20000001,
    			mu:0,
    			uacl:-1
    		},
    		{
    			nm:"Unit_2",
    			cls:2,
    			id:20000002,
    			mu:0,
    			uacl:-1
    		},
    		{
    			nm:"Unit_3",
    			cls:2,
    			id:20000003,
    			mu:0,
    			uacl:-1
    		}
    	]
    }
    

    Los nombres de las unidades se mostrarán en los parámetros nm.

¿Por qué difieren los resultados del informe en la interfaz y en la respuesta a la solicitud API?

Al ejecutar informes mediante solicitudes API, es importante no olvidar configurar la zona horaria para la sesión actual. Para ello, inmediatamente después de la autorización, se deben aplicar una vez las configuraciones de localización del usuario.

Al trabajar con informes mediante API, es necesario tener en cuenta las características de obtención de resultados por el índice de la tabla.

Ekaterina Grib,Customer Service Engineer

10
  • 10
  • 25
  • 30
Gracias por su opinión.
Informar de un error
Texto con el error Comentario
Máximo 500 caracteres